我想在我的wix项目生成的msi文件的文件名中包含一些动态部分。这个动态部分应该由变量控制,这些变量是我的wix项目的一部分,声明如下:
<?define ProductVersion="7.1.0.1" ?>是否有人知道如何将该wix变量的值发送到链接器以将其用作输出文件名的一部分?
顺便说一下:我使用的是Wix3
发布于 2009-11-07 00:15:56
既然它只是一个文件名,为什么不在构建脚本中使用一个构建后操作来重命名该文件(假设是MSBuild)呢?
发布于 2012-10-15 02:23:47
您可以更新.wixproj的OutputName,并使用MSBuild变量传递版本号或任何其他您喜欢的变量。
我的构建脚本如下所示:
set PRODUCTVERSION=7.1.0.1
MSBuild.exe /p:Configuration=Debug /p:ProductVersion=%PRODUCTVERSION% Installer.wixproj我的WiX项目看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>1.0.0.0</ProductVersion>
<ProjectGuid>{b7415c44-8d59-4ac2-b698-03e399a305e3}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Installer.$(ProductVersion)</OutputName>
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
<WixVariables>ProductVersion=$(ProductVersion)</WixVariables>
</PropertyGroup>
...
</Project>输出将为:
Installer.7.1.0.1.msi发布于 2009-11-07 00:43:44
msi文件名不是由wix文件决定的,而是由light.exe -out开关决定的。如果在构建脚本中执行以下操作(假设它是批处理脚本),则可以对-out和wix文件使用相同的值:
使用set productversion=1.2.3
-out foo%productversion%.msi将环境变量设置为light.exe链接器
$(env.productversion)相同的环境变量
https://stackoverflow.com/questions/1688569
复制相似问题