0

我有一个 wix 项目,并且正在通过从 wixproj 文件传递​​的属性更改产品版本。

我的 wxs 文件会是这样的

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product Id="7a224f9a-0627-4848-8b9e-f037cb409fc6" UpgradeCode="42c97588-6c36-40ef-aeb0-290aaffd6456" Version="$(var.ProductVersion)" Language="1033" Name="Myproj" Manufacturer="My Organization">

我将版本传递为 $(var.Productversion)。在我的 wixproj 中,我正在传递这个变量,如下所示。

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
    <ProductVersion>3.0</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <Version Condition=" '$(Version)' == '' ">1.0.0.5</Version>
    <OutputType>Package</OutputType>
    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>



  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
    <OutputPath>bin\$(Configuration)\</OutputPath>
    <IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
    <DefineConstants>ProductVersion=$(Version)</DefineConstants>
  </PropertyGroup>

我通过 Msbuild 传递这个 $version number 属性。但不知何故,该值没有更新。

在 Msbuild 日志文件中,我无法跟踪这一点。有什么方法可以确定版本号是否取自正确的位置并具有我给定的值?

在 wix 中我们是否可以显示正在传递的值?我尝试使用 wixproj Afterbuild target ,显示的数字(2.20.1.2)在 Msi 中没有更新(它是 2.20.1.1)。

4

1 回答 1

0

如果您AssemblyVersion.wxi的项目中使用了某个文件,则可以从该文件中的 MSBuild 文件更新相同的产品版本。然后通过引用$(var.ProductVersion)将引用该文件中的相同内容。

如果这对您来说不是很清楚,如果需要,我可以详细说明。

于 2013-02-10T03:46:56.023 回答