在VS2008中有没有办法将MSBuildBinPath设置为用于新项目?

时间:2013-10-24 11:24:03

标签: c# .net visual-studio-2008 msbuild

我在较旧的解决方案中完成了一项工作。我在这个解决方案中添加了一个新项目。对于这个解决方案,我们必须使用Visual Studio 2008,并且没有项目可以拥有比2.0更新的.Net框架(因为它安装的服务器有限制)。

即使解决方案在我的机器上构建,我们仍然需要手动编辑项目(.csproj)文件以专门设置一个属性:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

(我在添加项目时自动生成)需要更改为

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

促进一些神秘的构建设置,没有在这里工作的人理解或想要触摸。

this question/article我发现了以下内容:

  

$(MSBuildToolsPath)是$(MSBuildBinPath)的特定于版本的替代品。较旧的属性仍然可用,但应弃用。 VS2008将在创建项目时使用较新的路径。在VS2005之前,使用了较旧的路径。将项目从VS2005升级到VS2008时,它不会修改路径。

这是否意味着在此构建脚本的某处,MSBuildBinPath的路径是硬编码的?

手动更改此操作容易出错并且容易忘记( it-build-on-my-machine 效果)。有没有办法在VS2008中的某个地方设置它,以便此解决方案的新项目默认在.csproj文件中获取旧属性?

1 个答案:

答案 0 :(得分:1)

您是否尝试在构建服务器上安装.net 3.5和VS2008?可能,你的构建服务器上只有.net 2.0和msbuild 2.0。

我只看到一个选项来完成您描述的内容:使用自定义项目模板。我相信它很容易实现(假设有一个tutorial,你只需要稍微修改一下默认模板)。