Jak Mogę ustawić wersję Instalatora WiX na aktualną wersję kompilacji?

Napisałem aplikację i jej instalator WiX i umieściłem ją pod kontrolą wersji za pomocą subversion. Gdy Instalator Wix buduje chcę, aby jego numer wersji był bieżącą wersją kompilacji aplikacji. Jak to osiągnąć? Użyłem c# do kodowania aplikacji.

N. B. używam ccnet do budowy tego projektu

 109
Author: AndyUK, 2009-03-09

5 answers

Możesz użyć Product/@Version="!(bind./ Align = "left" / FileId) " (zamień {[0] } na Id pliku, z którego chcesz uzyskać numer wersji) i light.exe wypełni wartość wersją pliku, do której odwołuje się FileId.

 149
Author: Rob Mensching,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-02 19:04:20

Zrobiłem to w jednym z moich projektów, pisząc rozszerzenie preprocesora, aby odczytać wersję pliku z mojego pliku wykonywalnego. Więc plik WiX wygląda tak:

<?define ProductName="$(fileVersion.ProductName($(var.MyApp.TargetPath)))" ?>
<?define CompanyName="$(fileVersion.CompanyName($(var.MyApp.TargetPath)))" ?>
<?define ProductVersion="$(fileVersion.ProductVersion($(var.MyApp.TargetPath)))" ?>
<Product 
    Id="<product ID>" 
    Name="$(var.ProductName)" 
    Version="$(var.ProductVersion)" 
    Manufacturer="$(var.CompanyName)" 
    Language="1033" 
    UpgradeCode="<upgrade code>">

Umieściłem kod dla In Na CodePlex: http://wixfileversionext.codeplex.com/

 32
Author: Chris Kaczor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-14 14:51:37

W przypadku, gdy ktoś szuka rzeczywistego przykładu XML, działa to z. NET assemblies(i nie musisz wykonywać atrybutów Assembly lub KeyPath). Wyeliminowałem niepowiązany kod z [..."miejsce": {]}

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product [...] Version="!(bind.fileVersion.MyDLL)">
        [...]
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFilesFolder" Name="PFiles">
                <Directory Id="INSTALLDIR" Name="MyDLLInstallLocation">
                    <Component Id="MainLib" Guid="[...]">
                        <File Id="MyDLL" Name="MyDll.dll" Source="MyDll.dll" />
                        [...]
                    </Component>
                    [...]
                </Directory>
            </Directory>
        </Directory>
    </Product>
</Wix>
 18
Author: K0D4,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-29 17:32:58

Oto bardzo prosty sposób na dopasowanie wersji pakietu Bootstrapper do wersji MyApp AssemblyVersion za pomocą BeforeBuild Target i DefineConstants.

/ Align = "left" / wxs:
<Bundle Name="$(var.ProductName) Bootstrapper v$(var.BuildVersion)"
     Version="$(var.BuildVersion)"

Bootstrapper.wixproj:

<Target Name="BeforeBuild">
  <GetAssemblyIdentity AssemblyFiles="..\MyApp\bin\$(Configuration)\MyApp.exe">
    <Output TaskParameter="Assemblies" ItemName="AssemblyVersion" />
  </GetAssemblyIdentity>
  <PropertyGroup>
    <DefineConstants>BuildVersion=%(AssemblyVersion.Version)</DefineConstants>
  </PropertyGroup>
</Target>
 17
Author: Brock Hensley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-25 21:58:56

To wygląda dość blisko tego, co próbujesz osiągnąć. Zobacz, jaki jest odpowiednik w tempomacie.

Http://www.ageektrapped.com/blog/setting-properties-for-wix-in-msbuild/

 3
Author: JohnW,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-09 12:55:24