私のDefines.wxiには、次のものがあります。
<?define MajorVersion="1" ?>
<?define MinorVersion="08" ?>
<?define BuildVersion="11" ?>
MyProject.Setup.wixprojには、次のものがあります。
<OutputName>MyProject</OutputName>
<OutputType>Package</OutputType>
どういうわけかファイル名にバージョン変数を含めて、ファイルにMyProject.1.08.11.msiという名前を付けることはできますか?
これは機能しませんでした(そのような変数は定義されていません):
<OutputName>MyProject-$(MajorVersion)</OutputName>
<OutputType>Package</OutputType>
これは機能しませんでした(そのような変数は定義されていません):
<Target Name="AfterBuild" Condition="'$(Configuration)' == 'Release'">
<Copy SourceFiles="$(OutputPath)$(OutputName).msi" DestinationFiles="C:\$(OutputName)-$(MajorVersion).msi" />
</Target>
$(MajorVersion)がDefines.wxiファイルから定義をフェッチする正しい方法ではないことは私には非常に明白に思えます。とは?
アップデート
私はこれをMyProject.Setup.wixprojに入れようとしました:
<InstallerMajorVersion>7</InstallerMajorVersion>
<InstallerMinorVersion>7</InstallerMinorVersion>
<InstallerBuildNumber>7</InstallerBuildNumber>
..。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>PrebuildPath=..\..\obj\prebuild\web\;InstallerMajorVersion=$(InstallerMajorVersion);InstallerMinorVersion=$(InstallerMinorVersion);InstallerBuildNumber=$(InstallerBuildNumber)</DefineConstants>
</PropertyGroup>
そしてこれはDefines.wxiにあります:
<?define MajorVersion="$(var.InstallerMajorVersion)" ?>
<?define MinorVersion="$(var.InstallerMinorVersion)" ?>
<?define BuildVersion="$(var.InstallerBuildNumber)" ?>
<?define Revision="0" ?>
<?define VersionNumber="$(var.InstallerMajorVersion).$(var.InstallerMinorVersion).$(var.InstallerBuildNumber)" ?>
どちらも動作しませんでした。次のエラーメッセージが表示されます。
- Product /@Version属性の値'..'は有効なバージョンではありません。有効なバージョン値は「xxxx」のようになります。ここで、xは0〜65534の整数です。
- Product /@Version属性が見つかりませんでした。必須です。