gpt4 book ai didi

msbuild - 将石蜡与 TFS 结合使用

转载 作者:行者123 更新时间:2023-12-02 18:41:49 26 4
gpt4 key购买 nike

我有一个解决方案,其中有许多我想使用的 Wix 项目 Paraffin用于维护包含文件的列表。

据我了解,您通常会将 Paraffin 指向各个 bin 文件夹以收集所有文件。

当 TFS 生成解决方案时,它会覆盖 OutDir msbuild 属性,这会导致所有生成输出都转到公共(public)二进制目录,而不是每个项目的 bin 文件夹。

那么在这种情况下人们如何使用石蜡呢?

最佳答案

我已经很多年没有使用石蜡了。最新版本可能可以满足您的需要,但让我给您一些额外的想法,您可以使用或不使用石蜡

石蜡牛脂的一个缺点是它们会收获二元,因此它们必须存在,位于适当的文件夹等中。另一种方法是从 .sln 文件本身及其引用的 .proj 文件中获取 - 解决方案可能是最终的列表产品|包中包含哪些二进制文件,不包含哪些二进制文件。您也许能够在构建时自动为每个二进制文件生成片段,而无需在源代码管理中维护这些片段,也无需实际构建二进制文件。

研究 WiX 3.6+ 中的 MSBuild 集成,特别是 harvest targets 。如果这对您不起作用,请尝试以下操作:

我们在最近的一个项目中采用的方法完全绕过了热量。我们编写了一个工作流程事件来扫描 .sln 及其 .proj 引用,并直接为每个二进制文件生成一个 WiX Fragment - 它们'全部只是 XML 文档。版本 3 UUID 是根据二进制名称、目标文件夹和构建版本生成的(此想法归功于 Derek Cicerone),以便 ComponentID 在构建之间保持一致,但在分支到分支时自动滚动新版本。

解决方案中的某些二进制文件(例如测试夹具)我们不想放入安装程序包中,因此我们将新的 MSBuild 属性注入(inject)到 .proj 文件中以标记“可安装”(或不是)。您可以注入(inject)一个属性来指定目标目录 - 在我们的例子中,所有二进制文件都应该进入同一个文件夹,所以我们不需要它。如果您想变得更奇特,您甚至可以为此构建一个自定义 Visual Studio 项目属性页。

这样做的一个好处是,团队中的应用开发人员可以简单地向解决方案添加新的二进制文件,或删除现有的二进制文件,安装程序包将自动同步 .msi 中的内容下次构建时打包。为安装人员(真正的您)节省了很多麻烦!

您可以结合使用这些方法:扫描解决方案所构建的二进制文件,然后使用该信息将石蜡加热定位在适当的文件夹|文件中进行收集。

关于msbuild - 将石蜡与 TFS 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13133387/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com