2017-09-14 9 views
0

.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コマンドはこの問題を解決します。

+0

corflags.exeが見つかるようにPATHを設定していません。出力ウィンドウで、正確なエラーメッセージを確認します。ビルドイベントなしで同じ結果を得ることが簡単な場合は、これを難しい方法でやってはいけません。プロジェクト>プロパティ>ビルドタブ、プラットフォームターゲット= x86。 –

+0

プラットフォームターゲットはすでにx86上にあります。私は私の問題にcorflagsが必要です。私もcorflags.exeへのフルパスを試しました。出力ウィンドウから完全なエラーメッセージを表示して質問を更新しました。 –

+0

これはあなたがすでに知っているエラーメッセージです。これは、[出力]ウィンドウに表示されているすべてのものを表示すると常により効果的です。そして、いいえ、あなたはコーラグを必要としません。オプションなしで実行すると簡単に見ると、32BITREQが既にオンになっていることがわかります。だからそれを再びオンにするのは分かりません。 –

答えて

1

これは、Oracle接続(バージョン9.2)で発生したエラーを解決しませんでした。私の手動corflagsコマンドはこの問題を解決します。

あなたがビルド - >全般]を変更した後、あなたは、コマンドラインでQardPrint.exeのパスに有料注意が必要 - >プラットフォーム= x86 - >プラットフォームターゲットはx86ビルドに設定されています。

x86に変更プラットフォームターゲットの後、QardPrint.exeはのx86フォルダに生成された新しいました:あなたは、コマンドライン「$(ProjectDir)bin\$(ConfigurationName)\QardPrint.exe」の前のパスを変更しない場合、あなたが得る

$(ProjectDir)bin\x86\$(ConfigurationName)\QardPrint.exe 

は、そのエラー。私はパスを修正した場合、すべてのものが正常に動作することができます

enter image description here

:私は前のコマンドラインで同じエラーを得ました。

これが役に立ちます。

+0

投票を理解することができない、説明を与えることができますか? –

+0

これで後でいくつかのテストを行います。なぜ誰かが投票したのかはっきりしない。あなたのご意見ありがとうございます。 –

+1

@ MarkBaijens、np。この回答があなたに役に立たない場合は、私に無料で知らせてください、私は続くつもりです。 –

関連する問題