Wix heat.exe 与项目收获类型

发布于 2024-09-17 05:41:50 字数 452 浏览 5 评论 0原文

我正在使用最新版本的 Wix 3.5,并尝试使用 heat.exe 生成片段文件。命令行是:

"%WIX%\bin\heat.exe" project "MyProj.csproj" -pog Binaries -pog Content -suid -directoryid 
INSTALLLOCATION -ag -template fragment -out "Files.wxs"

我遇到的问题是生成的文件中缺少我的项目所依赖的程序集。这是预期的行为吗?我怎样才能添加它们?

我应该使用 dir 收集类型吗?!那么如何删除*.pdb或*.vshost.exe呢?

我想将它与 CI Server (TeamCity) 一起使用

编辑: 我尝试了 -pog Satellites 但也不起作用

I'm using the lastest version of Wix 3.5 and I'm trying to generate a fragment file using heat.exe. The command line is :

"%WIX%\bin\heat.exe" project "MyProj.csproj" -pog Binaries -pog Content -suid -directoryid 
INSTALLLOCATION -ag -template fragment -out "Files.wxs"

The problem I'm having is that the assemblies my project is depending upon are missing from the generated file. Is this the intended behaviour ? How can I add them ?

Should I use the dir harvesting type ?! How to remove *.pdb or *.vshost.exe then ?

I want to use it with CI Server (TeamCity)

edit:
I tried -pog Satellites and doesn't work either

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

茶底世界 2024-09-24 05:41:51

不幸的是,这是 WiX 的一个已知问题:

热量不会收获引用程序集

从 bug 评论来看,WiX 4.0 中似乎会添加支持。

Unfortunately this is a known issue with WiX:

Heat doesn't harvest referenced assemblies

From the bug comments, it looks like support will be added in WiX 4.0.

献世佛 2024-09-24 05:41:51

我知道这是一个老问题,但该线程可能包含一些可能解决方案的想法:
如何添加整个目录或项目输出到 WiX 包

提到的工具之一,Paraffin 3.1,有各种命令行开关,应该允许您排除不相关的文件。
http: //www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/28/paraffin3-1-new-and-improved.aspx

I know this is an old question, but this thread might contain some ideas for possible solutions:
How to add a whole directory or project output to WiX package

One of the tools mentioned, Paraffin 3.1, has various command line switches that should allow you to exclude the files that are not relevant.
http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/28/paraffin3-1-new-and-improved.aspx

枯寂 2024-09-24 05:41:51

在我们的 CI 构建中,我们使用 WiX 和手工制作的 wxs 文件。
以下是构建文件的内容:

<Target Name="BuildSetup"  DependsOnTargets="BuildSetupVersion">
    <Exec Command="$(WIX-ToolPath)\candle.exe -nologo -out $(MSBuildProjectDirectory)\bin\Debug\Designer.wxs UI_RUS.wxs Bin.wxs" WorkingDirectory = "$(MSBuildProjectDirectory)\bin\Debug"/>
    <Exec Command="$(WIX-ToolPath)\light.exe -wx -out Setup_$(Major).$(Minor).$(Build).$(Revision).msi Designer.wixobj UI_RUS.wixobj Bin.wixobj" WorkingDirectory = "$(MSBuildProjectDirectory)\bin\Debug"/>
    <Message Text="##teamcity[publishArtifacts '$(MSBuildProjectDirectory)\bin\Debug\Setup_$(Major).$(Minor).$(Build).$(Revision).msi']"/>-->
</Target>

Designer.wxs - 包含程序特定的 msi 信息(升级代码、msi 版本和包信息)。
UI_culture(本例中为 RUS).wxs - 包含自定义本地化 WiX UI。
Bin.wxs - 包含所有需要的文件。(您可以通过 wxi 生成并使用 WiX 的包含来自动化它),但我们只需手动编写此文件。

In our CI build we are using WiX with hand crafted wxs files.
Here is content of the build file:

<Target Name="BuildSetup"  DependsOnTargets="BuildSetupVersion">
    <Exec Command="$(WIX-ToolPath)\candle.exe -nologo -out $(MSBuildProjectDirectory)\bin\Debug\Designer.wxs UI_RUS.wxs Bin.wxs" WorkingDirectory = "$(MSBuildProjectDirectory)\bin\Debug"/>
    <Exec Command="$(WIX-ToolPath)\light.exe -wx -out Setup_$(Major).$(Minor).$(Build).$(Revision).msi Designer.wixobj UI_RUS.wixobj Bin.wixobj" WorkingDirectory = "$(MSBuildProjectDirectory)\bin\Debug"/>
    <Message Text="##teamcity[publishArtifacts '$(MSBuildProjectDirectory)\bin\Debug\Setup_$(Major).$(Minor).$(Build).$(Revision).msi']"/>-->
</Target>

Designer.wxs - contains program specific msi info (UpgradeCode, msi Version, and Package info).
UI_culture(RUS in this example).wxs - contains custom localized WiX UI.
Bin.wxs - contain all needed files.(you can automate it with wxi generation and using WiX's includes), but we simply write this file manually.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文