我有一个解决方案,其中有许多Wix项目,我想使用Paraffin来维护包含文件的列表。
据我所知,您通常会将Paraffin指向不同的bin文件夹来收集所有文件。
当TFS构建一个解决方案时,它会覆盖OutDir的msbuild属性,这会导致所有的构建输出都进入一个公共的二进制文件目录,而不是每个项目的bin文件夹。
那么在这种情况下人们如何使用石蜡呢?
发布于 2013-03-04 07:37:51
我已经很多年没有用过paraffin了。最新版本可能会满足您的需求,但让我给您一些额外的想法,您可以使用或不使用paraffin。
paraffin、heat和tallow的一个缺点是它们获取二进制文件,因此二进制文件必须存在,并且必须位于适当的文件夹中,等等。另一种方法是从.sln文件本身及其引用的.proj<代码>E213文件中获取--解决方案大概是确定哪些二进制文件存在于产品|包中,哪些不存在。您可以在构建时为每个二进制文件自动生成片段,而不必在源代码控制中维护这些片段,也不必实际构建二进制文件。
了解WiX 3.6+中的MSBuild集成,特别是harvest targets。如果这对你不起作用,试试这个:
我们在最近的一个项目中采取的一种方法完全绕过了heat。我们编写了一个工作流活动来扫描.sln及其.proj引用,并直接为每个二进制文件生成WiX 片段 --它们都只是XML文档。版本3 UUID是基于二进制名、目标文件夹和构建版本生成的(此想法归功于Derek Cicerone ),因此ComponentID从一个构建版本到另一个构建版本是一致的,但在分支到新版本时会自动滚动。
解决方案中的一些二进制文件(例如测试jigs)我们不想放入安装程序包中,因此我们在.proj文件中注入了一个新的MSBuild属性,以标记为“可安装”(或不可安装)。您可以注入一个属性来指定目标目录--在我们的例子中,所有二进制文件都应该放在同一个文件夹中,所以我们不需要这样做。你甚至可以为此构建一个自定义的Visual Studio项目-属性页面,如果你想要变得花哨的话。
这样做的一个好处是,团队中的应用程序开发人员可以简单地将新的二进制文件添加到解决方案中,或者删除现有的二进制文件,安装程序包将在下一次构建时自动同步.msi包中的内容。省去了安装人员(真的是你的)很多麻烦!
您可以结合使用这些方法:扫描它为其构建的二进制文件的解决方案,然后使用该信息将paraffin或heat定位在适当的文件夹|文件中进行收集。
https://stackoverflow.com/questions/13133387
复制相似问题