2014-09-26 50 views
2

我的引導程序,setup.exe產生如下(節選是從我.wixproj文件):如何將參數傳遞給BootstrapperFile?

<Target Name="AfterBuild"> 
    <ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 
    <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1"> 
     <ProductName>.NET Framework 3.5 SP1</ProductName> 
    </BootstrapperFile> 
    <BootstrapperFile Include="Microsoft.VSTORuntime.4.0"> 
     <ProductName>Microsoft Visual Studio 2010 Tools for Office Runtime (x86 and x64)</ProductName> 
    </BootstrapperFile> 
    </ItemGroup> 
    </BootstrapperFile> 
    <GenerateBootstrapper ApplicationFile="$(TargetFileName)" ApplicationName="My Application" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="HomeSite" CopyComponents="False" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\BootStrapper" ApplicationRequiresElevation="True" Culture="en-US" Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' " /> 
</Target> 

msiexec支持/norestart,我想這/norestart參數傳遞到這些先決條件,如Office工具運行和。 NET 3.5安裝程序。我不知道如何將命令行參數傳遞給引導程序將下載和安裝的MSI。有沒有任何標準的方法來實現這一目標?

回答

2

在默認的引導程序,這是我們如何傳遞參數從命令行:

<Wix> 
    <Bundle> 
    <Variable Name="CommandLineArgument" bal:Overridable="yes"/> 
    <Chain> 
     <MsiPackage> 
     <MsiProperty Name="CommandLineArgument" Value="[CommandLineArgument]"/> 
     </MsiPackage> 
    </Chain> 
    </Bundle> 
</Wix> 

記下BAL的:可重寫。這就是我能夠確保我們可以從命令行傳遞屬性值的方式。確保將名稱空間聲明添加到Wix元素xmlns:bal =「http://schemas.microsoft.com/wix/BalExtension」,並鏈接到WixBalExtension.dll。

+0

雖然這是偉大的WiX的引導程序,我使用Microsoft Windows的引導程序生成器我的實際.wixproj文件裏用上面的代碼來生成它,所以我只是想知道如果我能傳遞任何參數微星的微軟引導程序使用。 – Alexandru 2014-09-28 03:51:40

+0

@Alexandru出現混淆是因爲你用[wix]標記了你的問題。 – 2014-09-28 15:44:59

+0

@TomBlodget是的,因爲它是我的WiX安裝程序的後構建設置的一部分。我無意造成任何混淆。我也標記爲「引導程序」,但無論哪種方式,你可以說我不使用WiX的引導程序項目中的XAML看到的,但我的WiX的項目有微軟的引導程序的生成後調用。 – Alexandru 2014-09-28 17:58:55