.NETフレームワーク用のWPFプログラムをビルドします。プログラムが正しく動作するためには、次のcorflagsコマンドを実行する必要があります。ビルド後にcorflagsを自動的に実行
corflags c:/[file location]/[file name].exe /32BITREQ+
これはビジュアルスタジオコンソールを使って手動で行いますが、ビルドが完了したら自動的に行いたいと思います。それは可能ですか?
解決策を探してみましたが、見つけられませんでした。私の推測では、ビルド後のイベントコマンドラインでコマンドを使用することです。私は従うことを試みた。
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "$(ProjectDir)bin\$(ConfigurationName)\QardPrint.exe" /32BITREQ+
これは、次のエラーを示します。出力ウィンドウに表示されます。
1>Target "PostBuildEvent: (TargetId:81)" in file "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets" from project "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\QardPrint.csproj" (target "CoreBuild" depends on it):
1>Using "Exec" task from assembly "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "Exec" (TaskId:58)
1> Task Parameter:WorkingDirectory=bin\x86\Debug\ (TaskId:58)
1> Task Parameter:Command="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\bin\Debug\QardPrint.exe" /32BITREQ+ (TaskId:58)
1> "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\bin\Debug\QardPrint.exe" /32BITREQ+ (TaskId:58)
1> Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.6.1055.0 (TaskId:58)
1> Copyright (c) Microsoft Corporation. All rights reserved. (TaskId:58)
1> (TaskId:58)
1>corflags : error CF001: Could not open file for writing
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(5019,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\corflags.exe" "H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\bin\Debug\QardPrint.exe" /32BITREQ+" exited with code 1.
1>Done executing task "Exec" -- FAILED. (TaskId:58)
エラーリストで
Could not open file for writing QardPrint H:\VSWorkspace\VSTS\Quantore\LoginQard\QardPrint\corflags
代わりの直接corflagsを使用して、私はまた、ハンスアンパッサンはコメントで提案、次のことを試してみました。
- ProjectProperties - >ビルド - >一般 - > PlatformTarget:x86の
- ProjectProperties - >ビルド - >プラットフォーム:x86の
これは私が持っているエラーを解決しませんでしたオラクル接続(バージョン9.2)。私の手動corflagsコマンドはこの問題を解決します。
corflags.exeが見つかるようにPATHを設定していません。出力ウィンドウで、正確なエラーメッセージを確認します。ビルドイベントなしで同じ結果を得ることが簡単な場合は、これを難しい方法でやってはいけません。プロジェクト>プロパティ>ビルドタブ、プラットフォームターゲット= x86。 –
プラットフォームターゲットはすでにx86上にあります。私は私の問題にcorflagsが必要です。私もcorflags.exeへのフルパスを試しました。出力ウィンドウから完全なエラーメッセージを表示して質問を更新しました。 –
これはあなたがすでに知っているエラーメッセージです。これは、[出力]ウィンドウに表示されているすべてのものを表示すると常により効果的です。そして、いいえ、あなたはコーラグを必要としません。オプションなしで実行すると簡単に見ると、32BITREQが既にオンになっていることがわかります。だからそれを再びオンにするのは分かりません。 –