首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WIX:如何动态设置msi输出文件的名称

WIX:如何动态设置msi输出文件的名称
EN

Stack Overflow用户
提问于 2009-11-07 00:09:05
回答 8查看 29.8K关注 0票数 32

我想在我的wix项目生成的msi文件的文件名中包含一些动态部分。这个动态部分应该由变量控制,这些变量是我的wix项目的一部分,声明如下:

代码语言:javascript
复制
<?define ProductVersion="7.1.0.1" ?>

是否有人知道如何将该wix变量的值发送到链接器以将其用作输出文件名的一部分?

顺便说一下:我使用的是Wix3

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-11-07 00:15:56

既然它只是一个文件名,为什么不在构建脚本中使用一个构建后操作来重命名该文件(假设是MSBuild)呢?

票数 1
EN

Stack Overflow用户

发布于 2012-10-15 02:23:47

您可以更新.wixproj的OutputName,并使用MSBuild变量传递版本号或任何其他您喜欢的变量。

我的构建脚本如下所示:

代码语言:javascript
复制
set PRODUCTVERSION=7.1.0.1
MSBuild.exe /p:Configuration=Debug /p:ProductVersion=%PRODUCTVERSION% Installer.wixproj

我的WiX项目看起来像这样:

代码语言:javascript
复制
<?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>

输出将为:

代码语言:javascript
复制
Installer.7.1.0.1.msi
票数 51
EN

Stack Overflow用户

发布于 2009-11-07 00:43:44

msi文件名不是由wix文件决定的,而是由light.exe -out开关决定的。如果在构建脚本中执行以下操作(假设它是批处理脚本),则可以对-out和wix文件使用相同的值:

使用set productversion=1.2.3

  • Pass -out foo%productversion%.msi将环境变量设置为light.exe链接器

  • 在wix文件中使用与$(env.productversion)

相同的环境变量

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

https://stackoverflow.com/questions/1688569

复制
相关文章

相似问题

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