3

ビルド前のイベントでdatasvcutil.exeコマンドを実行しています。

datasvcutil.exeは、「C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319」(64ビットマシンの場合)にあります。

これをC:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ datasvcutil.exeとしてハードコーディングすることもできますが、それはかなり脆弱なようです。架空の.netv4.0.30320がリリースされると、ビルド前のイベントは機能しなくなります。

Visual Studioコマンドプロンプトを使用して、パスなしでdatasvcutil.exeを呼び出すことができます。ビルド前のイベントコマンドラインからこれを呼び出す同様の間接的な方法があるかどうか疑問に思っています。

4

2 に答える 2

4

必要なツールは、MSBuild.exe単純に参照できるのと同じパスにあるため、 Framework/Framework64$(MSBuildBinPath)\DataSvcUtil.exeからも独立しています。

于 2011-10-13T16:41:10.340 に答える
2

私は上記のFilburtsの答えが好きです。しかし、本当に勇気を出したいのであれば、次のことを呼び出すことができます。

%VS100COMNTOOLS%\VCVarsQueryRegistry.bat
rem and query one of the %FrameworkDIR32% or %FrameworkDIR64% environment variables, depending on your choice

さらに勇気がある場合は、MSBuild自体でレジストリを読み取ることができます。次のリンクが役立つ場合があります。http://msdn.microsoft.com/en-us/library/ms171458.aspx(「レジストリのプロパティ」セクションを確認してください)

于 2011-10-13T17:06:32.803 に答える