2

コマンドの使用に問題があります

"$(WIX)bin\heat.exe" project "$(SolutionDir)\My.project.csproj" -dr FOLDER -cg filesUP -pog:Content -pog:Satellites -gg -g1 -sf -srd -suid -var "var.SourceDir" -out "$(ProjectDir)FilesFragment.wxs"

出力ファイルはこのパラメータ-var "var.SourceDir"を無視し、 var.My.project.ProjectDirを使用しています

...
<Component Id="My.project.Content.Web.config" Directory="My.project.Content" Guid="10E9C2E0-2A35-4D6F-B12D-D66AE2E831D4">
    <File Id="My.project.Content.Web.config" Source="$(var.My.project.ProjectDir)\Web.config" />
</Component>
...

Visual Studio 2010 は次のエラーを返します。

未定義のプリプロセッサ変数 '$(var.My.project.ProjectDir)'。
C:\My.project\My.project.Installer\FilesFragment.wxs

検索しましたが、パラメーターdirでheatが使用されている例しか見つかりませんでした。

パラメータ-varが heat プロジェクトでサポートされていないことを示すドキュメントは見つかりませんでした。

解決策はありますか?

4

2 に答える 2

1

私が見つけた1つの解決策は、コマンドを使用する代わりです:

"$(WIX)bin\heat.exe" project "$(SolutionDir)\My.project.csproj" -dr FOLDER -cg filesUP -pog:Content -pog:Satellites -gg -g1 -sf -srd -suid -var var.SourceDir -out "$(ProjectDir)FilesFragment.wxs"

パラメータを削除して、その場所に-var var.SourceDir環境変数を設定し、パラメータを削除して、ファイルSetup.wxsでその場所に IDを設定します。My.project.ProjectDir-dr FOLDERMy.project.Content

このように、コマンドは次のようになります。

"$(WIX)bin\heat.exe" project "$(SolutionDir)\My.project.csproj" -cg filesUP -pog:Content -pog:Satellites -gg -g1 -sf -srd -suid -out "$(ProjectDir)FilesFragment.wxs"

私の使用例では、これまでのところこのソリューションで問題はありませんでした。

于 2012-08-21T13:57:31.093 に答える
0

私のプロジェクトでは問題なくこのオプションを使用しています。おそらく、引用符は不要ですか?-var var.SourceDirの代わりに試してください-var "var.SourceDir"

別の推測: プロジェクト ( heat.exe project) を収穫します。このオプションは-varスイッチを無視し、プロジェクトに関連するもので上書きする可能性があります。私が覚えている限りでは、project収穫タイプは暑い場所ではうまく機能せず、使用にはお勧めできません...代わりに実行して、正しくheat.exe dir通過するかどうかを確認できます.-var

于 2012-08-17T14:58:54.100 に答える