ビジュアルスタジオポストビルドイベントMt.exeコマンドはコード9009で失敗します

StackOverflow https://stackoverflow.com/questions/4677055

  •  10-10-2019
  •  | 
  •  

質問

こんにちは私は私のポストビルドイベントから次のコマンドを実行しています:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe -manifest "$(ProjectDir)$(TargetName).exe.manifest" -updateresource:"$(TargetDir)$(TargetName).exe;#1"

コード9009で終了しても失敗しています...なぜこれが起こるのかわかりません。助言がありますか?

役に立ちましたか?

解決

周りに引用符を追加してみてください mt.exe パス、例:

"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe"

また、パスが有効であることを確認してください。

お役に立てれば。私は一日中コード9009に対して頭を打ち負かしてきましたが、完全に引用されたパスがそれを機能させるようです。

他のヒント

Exit Code 9009はファイルが見つかりませんエラーです。ポストビルドコマンドへのパスに存在するスペースには、パス全体と実行可能な名前の周りに引用符が含まれていない限り、コマンドプロンプトにエラーが発生します。基本的に、建物後コマンドでは、実行しようとしています C:\Program 議論で:

  • Files\Microsoft
  • SDKs\Windows\v7.0A\bin\mt.exe
  • -manifest "$(ProjectDir)$(TargetName).exe.manifest"
  • -updateresource:"$(TargetDir)$(TargetName).exe;#1"

明らかにあなたは呼ばれるファイルを持っていないので Program ルートディレクトリに存在するこのコマンド全体が失敗します。引用符でパスと実行可能ファイルをカプセル化すると、式全体が単一のコマンドとして評価されるため、建物後コマンドを次のように変更すると、すべてが正常に機能するはずです。

"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest" -updateresource:"$(TargetDir)$(TargetName).exe;#1"

または、Windows X64のVisualStudio X86に使用します

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe"

潜在的な解決策は次のとおりです。

Visual Studioのポストビルドイベント機能を使用して、上記のコマンドを入力するこのようにすることができます。これはおそらく機能しないため、Visual Studioは「...コード9009で終了しました...」などのエラーが発生します。

たとえば、ターゲット名= "Afterbuild"に関連するXMLタグをメモ帳と除外してCSPROJファイルを編集する必要があります(通常、ファイルの最後で見つけることができます)。次に、ポストビルデベントに関連するタグをアフタービルドに関連するタグ内に配置し、プロジェクトをリロードしてコンパイルします。管理者の権限を使用して実行する必要がある.exeファイルが生成されます。

このスレッドを読むまで、私は愚かにvsがどこにいるかを知っていると思いました mt.exe 生活。 +1 to @James

現在のSDKには組み込みのマクロがないので、私はシステムの普及に頼っていました、 windowssdkdir

 "%windowssdkdir%\bin\mt.exe"
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top