在一个大型解决方案中,我将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 :(得分:1)
SolutionDir
不是NuGet独有的,NuGet只是在直接构建项目文件的情况下添加定义。如果构建是从解决方案文件开始的,那么SolutionDir
将由MSBuild定义。