批量导入文件
https://blog.csdn.net/dirichlet_zju/article/details/80150632
这时代码里的var.xxxname在工程项目里是未定义的变量,这个时候我们自然想到在项目属性里添加,下图位置。添加后依然报undefined preprocessor variables,关掉项目重新打开发现我定义的变量又没了,说明没有真正的定义进去。不知道为什么!!
我的解决方法是在项目的工程文件(xxx.wixproj)里直接添加:
<PropertyGroup>
<DefineConstants>myvar1=$(SolutionDir)..\..\deploy\ResDLLs;myvar2=...</DefineConstants>
</PropertyGroup>
在项目里直接添加自动生成批量文件导入命令
在项目里也可以直接添加某个目录的文件批量导入。这样就能够在项目编译前就生成文件的批量导入资源文件。
同样是在工程文件里。
<Target Name="BeforeBuild">
<HeatDirectory Directory="..\..\..\deploy\ResDLLs" PreprocessorVariable="var.DeployResDLLsFolder" OutputFile="ResDLLs.wxs" ComponentGroupName="OemResDllsComponents" DirectoryRefId="OEMRESDLLSFOLDER" AutogenerateGuids="true" ToolPath="$(WixToolPath)" SuppressFragments="true" SuppressRegistry="true" SuppressRootDirectory="true" />
</Target>
wix在安装过程前或后执行某个程序
有的时候我们想要在正式安装前想先安装程序的运行环境,或者在安装完成后对程序做某些修改。
https://wixtoolset.org/documentation/manual/v3/xsd/wix/exepackage.html
一个例子,可以通过配置after属性来指定执行的先后顺序:
<!-- install Envonment-->
<ExePackage
Id="LDK_Environment"
Name="Prerequisites\AddinFile\AddinTool\SolidCenterSoftActionTool_RUS.exe"
SourceFile="$(var.SEAddinFileFolder)AddinTool\SolidCenterSoftActionTool_RUS.exe"
Compressed="no"
>
</ExePackage>