2

例とほぼ同じ非常に単純なコードを使用します。

    <?xml version="1.0" encoding="utf-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Bundle Version="1.0" Manufacturer="ACME" UpgradeCode="6AF8AF7D-3B44-4496-9E64-56206DF66C55">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"/>
    <Chain>
    <MsiPackage SourceFile="wpftoolkit.msi"/>
    </Chain>
    </Bundle>
    </Wix>

開始時にすぐにエラーを生成する setup.msi ファイルを取得します。

    msiexec /i setup.msi /l*v log.txt
    log.txt:
    === Verbose logging started: 02.10.2013  14:12:11  Build type: SHIP UNICODE 5.00.7600.00  Calling process: C:\Windows\system32\msiexec.exe ===
    MSI (c) (B0:48) [14:12:11:804]: Font created.  Charset: Req=204, Ret=204, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
    MSI (c) (B0:48) [14:12:11:805]: Font created.  Charset: Req=204, Ret=204, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
    MSI (c) (B0:A4) [14:12:11:823]: Resetting cached policy values
    MSI (c) (B0:A4) [14:12:11:823]: Machine policy value 'Debug' is 0
    MSI (c) (B0:A4) [14:12:11:823]: ******* RunEngine:
    ******* Product: Setup.msi
    ******* Action: 
    ******* CommandLine: **********
    MSI (c) (B0:A4) [14:12:11:824]: Note: 1: 2203 2: Setup.msi 3: -2147286960 
    MSI (c) (B0:A4) [14:12:11:824]: MainEngineThread is returning 1620
    === Verbose logging stopped: 02.10.2013  14:12:11 ===

Wix SDK のツール dark.exe は、setup.msi が破損しており、逆アセンブルできないと報告しています。先週、私はこのタイプのバンドルをコンパイルすることができ、msi はうまく機能しましたが、私が行っていたこととの相関関係を理解することはできません。

また、MSBuild を使用せずにこの例をコンパイルしようとしましたが、Wix SDK ツールを使用して直接コンパイルしました - それでもうまくいきません - コンパイルはエラーなしで終了しますが、結果の msi はとにかく破損しています:

    candle *.wxs
    light *.wixobj -out setup.msi -ext WixBalExtension

Wix バンドルのコンパイルに関して、正しく動作しない原因となるものはありますか?

4

2 に答える 2

2

AWix/Bundleは、インストーラーをチェーンする実行可能ファイルを生成するために使用されます。したがって、出力には .exe 拡張子を付ける必要があります。

MSBuild プロジェクトを実行または使用しているように見えるので、WiX Toolset コンパイラとリンカーを手動で呼び出すことができます。WiX は、Visual Studio が使用するテンプレート プロジェクトをインストールします。これは WiX Bootstrapper と呼ばれます。ご存じない場合は、Visual Studio および SharpDevelop プロジェクトは MSBuild プロジェクトです。そのため、ビルドをビルドする方法はあと 2 つあります。IDE を使用する方法と、コマンドラインで msbuild.exe を使用する方法です。

注: Visual Studio の前に WiX をインストールすると、Visual Studio は 4 つの WiX プロジェクト テンプレートを表示しません。その場合、単に WiX インストールを修復します。

于 2013-10-03T01:02:05.177 に答える