1

大規模なソリューションでは、Gendarme を Visual Studio 2008 コンパイル プロセスに統合しています。GendarmeMsBuildタスクをファイルと共に使用して、ソリューション内のすべてのプロジェクトにターゲットを.targets追加しています。インクルード パスを変更する必要がない方法で、AfterBuildこのファイルをファイルにインポートする方法を探しています (プロジェクトのネスト レベルが異なります)。.csprojNuGetSolutionDir変数を使用する以外に、これを解決する最善の方法は を使用することのよう$(MSBuildStartupDirectory)です。ただし、一部のマシンでは、同じバージョンの VS 2008 を使用すると (私が確認した限り、同じ更新プログラムがインストールされているため)、これはソリューション ディレクトリに解決され、他のマシンではc:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE.

どうすればいいですか

  • これを取得して、常にソリューションフォルダーに解決します
  • または別の一貫した方法でベースフォルダーを取得しますか?
4

1 に答える 1

1

SolutionDirは NuGet 専用ではありません。NuGet は、プロジェクト ファイルが直接ビルドされている場合に備えて定義を追加するだけです。ビルドがソリューション ファイルから開始された場合、SolutionDirMSBuild によって定義されます。

于 2012-10-26T11:57:42.000 に答える