0

このページの手順を試しています。ローカル マシンのフォルダーに wix バイナリをインストールしました。

そこで、wix VS 2010 プラグインによって作成された wix インストーラー プロジェクトを取得しました。VS 2010 IDE を使用してビルドし、msi ファイルを生成できますが、VS コマンド プロンプトで Msbuild を使用して同じことを行うことはできません。Msbuild がコンパイルしようとすると、candle.exe が見つからないというエラーが表示されます。

未処理の例外: System.IO.FileLoadException: ファイルまたはアセンブリ 'file:///C:\MyFolder\Wix\candle.exe' またはその依存関係の 1 つを読み込めませんでした。操作はサポートされていません。(HRESULT からの例外: 0x80131515) ---> System.NotSupportedException: ネットワーク上の場所からアセンブリを読み込もうとしたため、以前のバージョンの .NET Framework ではアセンブリがサンドボックス化されていました。このリリースの .NET Framework では既定で CAS ポリシーが有効になっていないため、この負荷は危険な場合があります。この読み込みがアセンブリのサンドボックス化を意図していない場合は、loadFromRemoteSources スイッチを有効にしてください。詳細については、http: //go.microsoft.com/fwlink/?LinkId=155569を参照してください。

VS IDEが見つけられるので、exeが正しい場所にあると確信しています。Msbuild に欠けているものを知りたいですか?

ありがとうございました!

4

2 に答える 2

6

私はここから答えを見つけました: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Error-in-candle-during-build-td7385947.html。バイナリを解凍する前に、zip ファイルを右クリックして [プロパティ] を選択し、最初のタブから [ブロック解除] を選択します。その後、通常どおり解凍します。

于 2013-11-15T03:23:01.113 に答える
1

提供されたページに従って、コード行に入力されたパスは、MSBuild スクリプトが WIX バイナリを識別するのに役立ちます。

<PropertyGroup>
        <WixToolPath>$(SourceCodeControlRoot)\wix\3.6.3220.0\</WixToolPath>
        <WixTargetsPath>$(WixToolPath)Wix.targets</WixTargetsPath>
        <WixTasksPath>$(WixToolPath)wixtasks.dll</WixTasksPath>
</PropertyGroup>

ここでの重要な引用は次のようになります。

WixTargetsPath プロパティ値は、それを使用する .wixproj プロジェクト ファイルに対して相対的でなければなりません。WixTasksPath プロパティは、wix.targets 内で WixTasks.dll をロードするために使用されます。

パスは、ファイルを解凍したフォルダーに従って適切に指定する必要があります。そうしないと、このエラーが発生する可能性があります。また、プロジェクトは VS2010 から正常に実行されます。これは、WIX のインストール場所から WIX バイナリを参照しているためです。ただし、MSBuild は、上記のコード行で指定した値を参照します。

WixToolPathでは、 、 、WixTargetsPathに与えている値を教えてくださいWixTasksPathwix36-binaries.zipまたはwix37-binaries.zipを解凍する場所へのパスも同様です。

これらの情報は、この問題の解決に役立つ可能性があるため、この回答も修正します。

于 2013-02-09T19:45:37.553 に答える