2016-07-14 13 views
1

WiXインストーラが正常に動作していましたが、作業してから数ヶ月が経過しています...再インストールされたマシンでインストーラをビルドしようとしていません。今は毎回構築することができません。私はすべてを単純化して、どこが失敗しているのかを特定しようとしましたが、それでも理由を理解できないようです。基本的には、ビルド前のプロセスで失敗しているようです。 Pre-build Eventコマンドの長さがありましたが、それを単純な要点に単純化しました。WiX Heat Pre-buildエラー

call “$(WIX)bin\heat.exe” dir "$(SolutionDir)MyProj\bin\Release" -out “$(ProjectDir)MyFiles.wxs” 

私は取得していますエラーは次のとおりです:ここに私のコマンドです

call “C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe” dir "C:\Users\MyName\Documents\GitHub\MyProj\bin\Release" -out “C:\Users\MyName\Documents\GitHub\MyProj\Installer\MyFiles.wxs” 
The filename, directory name, or volume label syntax is incorrect. 

コードは、ファイル名またはパスを見つけるために失敗していますことを示唆しているようだコード1、で終了することが表示されます。..しかし、出力ログに出力されたパスを確認したところ、C:\ Program Files(x86)ディレクトリにheat.exeアプリケーションが存在します。収穫しようとしているディレクトリ(dir)は適切に定義されており、出力場所も同様です。だから、誰がなぜこれが失敗しているのか知っていますか?

更新

何信じられないほど奇妙なのは、ビルド前のイベントコマンドは、私は単純に(他のパラメータを持つ)heat.exeアプリケーションを呼び出すようにしようとするコマンドを簡素化しても失敗しているようだということです。私は次の私のビルド前のイベントを変更してみました:

call “C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe” 

あなたが添付された画像からもわかるように、heat.exeアプリケーションが実際にビルドコマンドで指定したディレクトリにあります。それでも、MSBuildがコード1で失敗し、終了したというエラーが表示されます。出力ログを確認すると、「ファイル名、ディレクトリ名、またはボリュームラベルの構文が正しくありません」と表示されます。しかし、私はこのインストーラが数か月前にビルドイベントに変更を加えずに正しく動作していたと言えます。なぜマシンが再構成されて再インストールされたかを除いて、なぜ今は動作しないのか分かりません最近のWindows 10。私は最新のWiXツールセットをダウンロードしてインストールしました。それは必要なものすべてであると想定します。しかし、このエラーは解決されません。何か案は?

enter image description here

答えて

2

これは本当にばかですが、私はあなたのdir IIRCの終わりに\を配置する必要があります信じています。私はある時点で同じ問題に遭遇したと思う。このエラーは特に役に立ちません。

call “$(WIX)bin\heat.exe” dir "$(SolutionDir)MyProj\bin\Release\" -out “$(ProjectDir)MyFiles.wxs” 

(私は申し訳ありません..私は後方思い出した、あなたはDIRで、末尾の\を持っていないようにする必要があると思う)


念のためにあなたが事前に取得することはできません動作するようにイベントを構築するには、これは私が私が執筆しましたインストーラの一部に熱を呼び出す方法です

<Target Name="BeforeBuild" /> 
    <Exec Command="&quot;$(WIX)bin\heat.exe&quot; dir &quot;$(SolutionDir)MyProj\bin\Release&quot; -out &quot;$(ProjectDir)MyFiles.wxs&quot;"/> 
</Target> 

(wixprojファイルを編集する必要があります)、このように熱をも呼び出すことができます。これもうまくいけない場合は、なぜこれがあなたにとってうまくいかないのかというアイデアがありません。

+0

残念ながら、まだ私のマシンで問題を解決していないようです。 – andyopayne

+0

また、奇妙なのは、単にheat.exeアプリケーションを起動しようとするコマンドを単純化すると、ビルド前のイベントが失敗するということです。たとえば、私がちょうど使用する場合: "$(WIX)bin \ heat.exe"を呼び出す場合、私はまだ上記と同じエラーが発生します。 – andyopayne

+0

http://stackoverflow.com/questions/6755654/build-events-not-honoring-multiple-command-line-argumentsに従ってください。$(WIX)bin \ heat.exe "dir" $( MyDocument.wxs "(スペースが"エスケープしていたため "を解放した後のスペース) –

0

少し古い質問がありますが、私は問題に直面しており、別の質問に気づくのに数時間を費やしました:“$(WIX)bin\heat.exe”。まっすぐに置き換えて"$(WIX)bin\heat.exe"とお楽しみください。

関連する問題