我在较旧的解决方案中完成了一项工作。我已向此解决方案添加了一个新项目。对于这个解决方案,我们必须使用Visual Studio 2008
并且没有项目可以拥有比 2.0 更新的 .Net 框架(因为它安装的服务器有限制)。
即使解决方案构建在我的机器上,我们仍然必须手动编辑项目 ( .csproj
) 文件以专门设置一个属性:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
(这是我添加项目时自动生成的)需要更改为
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
以促进一些在这里工作的人都无法理解或想接触的神秘的构建设置。
在这个问题/文章中,我发现了以下内容:
$(MSBuildToolsPath) 是 $(MSBuildBinPath) 的特定版本替换。较旧的属性仍然可用,但应弃用。VS2008 在创建项目时会使用较新的路径。在 VS2005 之前,使用的是旧路径。当您将项目从 VS2005 升级到 VS2008 时,它不会修改路径。
这是否意味着在这个构建脚本的某个地方,MSBuildBinPath 的路径是硬编码的?
手动更改它容易出错且容易忘记(it-builds-on-my-machine效果)。有没有办法在 VS2008 中的某个地方设置它,以便该解决方案的新项目默认在.csproj
文件中获取旧属性?