首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将属性从MSBuild传递到wix,以便在预构建事件中使用

将属性从MSBuild传递到wix,以便在预构建事件中使用
EN

Stack Overflow用户
提问于 2015-11-19 00:18:46
回答 1查看 373关注 0票数 0

我在wix安装程序中使用热能。一开始,我在没有任何属性的情况下尝试它,它就像一个护身符一样工作。我将heat命令添加到预构建事件中,并将sourceDir声明添加到链接器中。现在,我想将属性传递给wix,以获取不同的文件夹。属性可以很好地传递给wxs文件,例如Version="$(var.PRODUCTVERSION)",但不能在预构建事件或链接器参数中使用,例如"%wix%\bin\heat.exe" dir "$(var.FOLDER)\work\" -cg Files -dr INSTALLFOLDER -gg -scom -sreg -sfrag -srd -out "FilesHeat.wxs"

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-19 15:02:25

你可以卸载你的wix项目,最后添加下面的代码

代码语言:javascript
复制
<Import Project="$(WixTargetsPath)" />

<Target Name="BeforeBuild">
    <HeatDirectory NoLogo="True" ToolPath="$(Wix)\bin" GenerateGuidsNow="True" OutputFile="$(MSBuildProjectDirectory)\Cmp_Gp_SQLFiles.wxs" Directory="..\_Dependencies\SQL" ComponentGroupName="Cmp_Gp_SQLFiles" DirectoryRefId="DIR_Sql" PreprocessorVariable="var.SQLFolder" SuppressFragments="True" SuppressUniqueIds="True" SuppressCom="True" SuppressRootDirectory="True" SuppressRegistry="True" RunAsSeparateProcess="True" />
</Target>

Save file.And构建项目。

它将生成如下所示Cmp_Gp_SQLFiles.wxs文件:

代码语言:javascript
复制
<Fragment>
 <DirectoryRef Id="DIR_Sql">
  <Component Id="sample.sql" Guid="PUT_GUID_HERE">
    <File Id="sample.sql" KeyPath="yes" Source="$(var.SQLFolder)\sample.sql" />     
  </Component>
    ...      
</DirectoryRef>

代码语言:javascript
复制
<Fragment>
  <ComponentGroup Id="Cmp_Gp_SQLFiles">
    <ComponentRef Id="sample.sql" />
    ...      
  </ComponentGroup>
</Fragment>

如果您不希望文件id与文件名相同,请将SuppressUniqueIds=false。

根据您的需求进行更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33785104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档