2012-10-26 28 views
1

在一個大型解決方案中,我將Gendarme集成到Visual Studio 2008編譯過程中。我正在使用GendarmeMsBuild任務以及.targets文件爲解決方案中的每個項目添加AfterBuild目標。我正在尋找一種方式來導入此文件到.csproj文件中,不會要求我改變包括路徑(項目有不同的嵌套級別)的方式。除了使用的NuGet SolutionDir變量,最好的辦法來解決這個似乎是使用$(MSBuildStartupDirectory)。然而,事實證明,在某些機器上,使用VS 2008的版本相同(如安裝相同的更新,只要我能夠檢查)解析爲解決方案目錄,並在別人c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE

如何,我不是

  • 得到這個總是解決到解決方案文件夾
  • ,或取得其他一致的方式的基礎文件夾?
+0

需要更多關於「加載」的含義和原因的更多信息。這是編譯時問題還是運行時問題? –

+0

@RobSmyth:更新了我的問題。 – skolima

+2

它是從msbuild啓動的目錄。 Common7 \ IDE從IDE啓動並且devenv.exe的默認工作目錄從未更改過,基本上在任何地方,但通常是從命令行啓動時的解決方案目錄。 –

回答

1

SolutionDir不是NuGet所獨有的,NuGet只是在項目文件直接構建的情況下添加了定義。如果構建是從解決方案文件開始的,則將由MSBuild定義SolutionDir

相關問題