有没有办法找到在WIX设置期间应用哪个产品版本号?

时间:2012-06-11 10:37:20

标签: logging msbuild wix

我有一个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目标,显示的数字(2.20.1.2)在Msi中没有更新(它是2.20.1.1)。

1 个答案:

答案 0 :(得分:0)

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

如果您不太清楚,我可以根据需要详细说明。