Visual Studio中的$(MSBuildStartupDirectory)指向不同计算机上的不同位置

时间:2012-10-26 11:10:19

标签: .net visual-studio-2008 msbuild

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

我怎么能

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

1 个答案:

答案 0 :(得分:1)

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