2011-01-21 36 views
2

私は一般的なタスクがあります:私の製品のセットアップ中に.NET Framework 3.5をインストールします。Wixで.NET Frameworkの再配布可能パッケージをインストールするには?

私は、次の手順を実行します。

私はカスタムアクションX
  • カスタムアクションXを作成している
    1. はProcess.Start経由で実行可能なYを()
    2. 実行Yは、msiexecのプロセスと実行を殺す開始します。 NET Frameworkセットアップパッケージ

    ここにいくつかの問題があります。.NET Frameworkセットアップでは、Windowsインストーラサービスにアクセスできず、別のインストールをすべて終了するよう求められています。

    私は、Process.Kill()メソッドがプロセスを間違って終了させる原因になると思います。 msiserverサービスが停止できませんが、キャンセルボタンをクリックしてセットアップを完了すると、msiserverサービスは停止可能になります。

    どうすれば問題を解決できますか?

  • +0

    これは、この論理の重複です:http://stackoverflow.com/questions/2335287/what-is-the-best-practise-to-create-msi-with-some-other-子msiとして前提条件 –

    +0

    私はdotNetInstallerなどのサードパーティ製品の代わりに、上記の手順を使用する必要があります。 – Dmitrii

    +0

    私はなぜ尋ねてもよろしいですか? –

    答えて

    2

    .NET Frameworkをブートストラップする方法は次のとおりです。

    1)ビルドマシンに.NET 3.5とWindowsインストーラ3.1のブーストラッパーを用意してください。 VSと一緒にインストールする必要があります。 C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v6.0A \ Bootstrapper \ Packages \ DotNetFX35にあります。

    2)wixプロジェクトファイルを編集します。 - もう一度右クリックし、[編集wixproj

    3)を追加し、以下の項目グループ - 右アンロード を選択し、プロジェクトをクリックしてください:

    <ItemGroup> 
        <BootstrapperFile Include="Microsoft.Windows.Installer.3.1"> 
        <ProductName>Windows Installer 3.1</ProductName> 
        </BootstrapperFile> 
        <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1"> 
        <ProductName>.NET Framework 3.5</ProductName> 
        </BootstrapperFile> 
    

    4)で次のように追加します。プロジェクトファイルの最後

    <Target Name="AfterBuild"> 
        <GenerateBootstrapper ApplicationFile="$(TargetFileName)" ApplicationName="My Application Name" BootstrapperItems="@(BootstrapperFile)" ComponentsLocation="Relative" CopyComponents="True" OutputPath="$(OutputPath)" Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" /></Target> 
    

    5)ビルドします。生成されたsetup.exe & msiはフレームワークをインストールする必要があります。

    スコット

    +0

    )。これは魅力的です。 – gangt

    関連する問題