Nel mio Defines.wxi ho:Includere MajorVersion etc nel nome del file (OutputName) durante la creazione di file MSI (progetto Wix)
<?define MajorVersion="1" ?>
<?define MinorVersion="08" ?>
<?define BuildVersion="11" ?>
Nel mio MyProject.Setup.wixproj ho:
<OutputName>MyProject</OutputName>
<OutputType>Package</OutputType>
È possibile includere le variabili di versione nel nome del file in qualche modo, in modo che il mio file possa essere denominato MyProject.1.08.11.msi?
Questo non ha funzionato (tale variabile è definita):
<OutputName>MyProject-$(MajorVersion)</OutputName>
<OutputType>Package</OutputType>
questo non ha funzionato (tale variabile è definita):
<Target Name="AfterBuild" Condition="'$(Configuration)' == 'Release'">
<Copy SourceFiles="$(OutputPath)$(OutputName).msi" DestinationFiles="C:\$(OutputName)-$(MajorVersion).msi" />
</Target>
Mi sembra molto chiaro per me che $ (MajorVersion) non è il modo corretto di recuperare la definizione dal file Defines.wxi. Cosa è?
Aggiornamento
Ho cercato di mettere questo in 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>
E questo in 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)" ?>
Non ha funzionato neanche. Hai ricevuto questi messaggi di errore:
- Il valore dell'attributo Product/@ Version, '..', non è una versione valida. I valori della versione legale devono essere come 'x.x.x.x' dove x è un numero intero da 0 a 65534.
- L'attributo Product/@ Version non è stato trovato; è richiesto .
quindi ... dopo aver provato parecchio, ho trovato che funziona come descritto, inoltre il ** define.wxi ** non è necessario. comunque sono rimasto bloccato per un po 'perché ho fatto copia-incolla del bit '' dal web, e in qualche modo c'era un personaggio speciale o qualcosa che VS non ha accettato - ho sempre avuto l'errore 'var.InstallerMajorVersion not found' . dopotutto funziona alla grande, soluzione davvero elegante! –
appena identificato un altro potenziale errore: vuoi assicurarti che il tag '' non sia definito in un altro 'PropertyGroup', altrimenti ottieni un errore' var.InstallerMajorVersion non trovato'. –