TeamCity 使用 MSBUILD 创建 exe 和 dll 输出,但在不同的地方?

我有一个使用 Team City 进行发布的 C# VS2019 windows 服务项目。项目输出是一个 EXE,并且工作得很好,但我也需要将此项目用作 DLL(作为另一个项目中的共享二进制文件)。因此,我还需要一个额外的构建步骤来创建 DLL,然后将其复制到某处。

如何将输出类型从 EXE 更改为类库?我需要在某处放置一个 OutputType 吗?它应该去哪里?

<OutputType>library</OutputType>

以下是我们为 EXE 发布的 Team City 工作中发生的事情: 团队城市构建步骤将启动目标名称“构建”,见下文:

<Target Name="Build" DependsOnTargets="Clean;UpdateVersionInfo">
    <MSBuild Projects="@(Solution)"/>
</Target>

变量@(Solution),指向这里:

<ItemGroup>    
<!-- Solution & Project Locations //-->
    <Solution Include="$(ProjectRoot)\MySolutionName.sln">
      <Properties>Configuration=$(BuildConfiguration)</Properties>          
    </Solution>
</ItemGroup>

并且目标构建步骤依赖于 Clean 和 UpdateVersionInfo:

<Target Name="Clean">
    <CleanDirectory TargetPath="$(StagingDestination)" />
</Target>

<Target Name="UpdateVersionInfo">
     <AssemblyInfo 
        CodeLanguage="CS" 
        OutputFile="$(ProjectRoot)\GlobalAssemblyInfo.cs" 
        AssemblyCompany="$(CompanyName)" 
        AssemblyCopyright="Copyright © $(CompanyName) $(Year)" 
        AssemblyConfiguration="$(BuildConfiguration)"
        ComVisible="false"        
        AssemblyVersion="$(Version)"        
        AssemblyFileVersion="$(Version)" />
</Target>

还有一些 PropertyGroup 部分,下面列出了其中一个部分。奇怪的是,PropertyGroup 中元素的智能确实显示了 OutputType。我试图在这里添加它,但它似乎没有任何作用。

<PropertyGroup>
    <!-- Project & Folder Locations //-->
    <ProjectRoot>..</ProjectRoot>
    <DeployDestination></DeployDestination>
    <StagingDestination>$(ProjectRoot)\Deploy</StagingDestination>            
  </PropertyGroup>

关于我应该添加什么以使输出成为 DLL 的任何想法? 感谢您的帮助!

iCMS 回答:TeamCity 使用 MSBUILD 创建 exe 和 dll 输出,但在不同的地方?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/125847.html

大家都在问