1

在一个大型解决方案中,我将 Gendarme 集成到 Visual Studio 2008 编译过程中。我正在使用GendarmeMsBuild任务和一个.targets文件来AfterBuild为解决方案中的每个项目添加一个目标。我正在寻找一种将这个文件导入.csproj文件的方法,这种方法不需要我更改包含路径(项目具有不同的嵌套级别)。除了使用 NuGetSolutionDir变量之外,解决此问题的最佳方法似乎是使用$(MSBuildStartupDirectory). 然而,事实证明,在某些机器上,使用相同版本的 VS 2008(安装了相同的更新,据我所知)这将解析为解决方案目录,而在其他机器上则解析为c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE.

我怎么能

  • 让它始终解析为解决方案文件夹
  • 或以另一种一致的方式获取基本文件夹?
4

1 回答 1

1

SolutionDir不是 NuGet 独有的,NuGet 只是添加定义,以防直接构建项目文件。如果构建是从解决方案文件开始的,那么SolutionDir将由 MSBuild 定义。

于 2012-10-26T11:57:42.000 回答