我有一个使用 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 的任何想法? 感谢您的帮助!