我已经设法让构建在我的构建服务器上运行,但现在我遇到的问题是输出文件夹中的输出包含来自所有项目的所有输出,而不仅仅是来自 wix 项目的输出。
知道如何改变这个吗?
TIA
如果您只对将 msi 作为构建输出感兴趣,那么您可以在团队构建中创建一个步骤,将安装程序文件复制到另一个位置,添加到构建项目中的以下构建目标应该会有所帮助。
这将覆盖目标AfterDropBuild
<Target Name="AfterDropBuild">
<PropertyGroup>
<InstallerDir>$(DropLocation)\$(BuildNumber)\Installers</InstallerDir>
</PropertyGroup>
<Message Importance="low" Text="InstallerDir=$(InstallerDir)" />
<MakeDir Directories="$(InstallerDir)" Condition="!Exists('$(InstallerDir)')" />
<CreateItem Include="$(BinariesRoot)\**\*.msi">
<Output TaskParameter="Include" ItemName="InstallationFiles"/>
</CreateItem>
<Copy SourceFiles="@(InstallationFiles)"
DestinationFolder="$(InstallerDir)"/>
</Target>
我创建了不同的解决方案平台 { Application, Setup } 并将我的 .NET 项目设置为使用应用程序构建,我的 wix 设置为使用设置构建。然后我告诉构建定义以该顺序构建这两个平台。结果是 TFS 将 .NET 代码存档在一个看起来像已部署计算机的应用程序文件夹中,并将 MSI 存档在 setup 文件夹中。
唯一的缺点是当您添加新项目时,您必须选择要在配置管理器中构建的平台。不过,我的开发人员似乎对此并不恼火。