在为 .Net 4.0 Web 应用程序自动升级项目文件以与 Visual Studio 2012 一起使用后,起初一切正常,但是在编译时我遇到了很多这样的错误:
说明:找不到源文件 '..\..\..\..\..\File Path'
文件:CSC
当尝试在“VS2012 的开发人员命令提示符”中使用 MSBuild(仅传递项目完整路径,没有其他参数)进行构建时,我得到了基本相同的错误:
“CSC:错误 CS2001:找不到源文件‘x’”
所有错误都指向位于我们代码分支中不同深度的其他 Web 应用程序项目中的链接文件(aspx、cs 等)(这就是为什么路径开头的所有 '....\')
对我来说,这看起来像是文件 Length的问题,不久前我在使用 MSBuild 在我们的 CI 服务器上构建项目时遇到了同样的问题,我能够通过在使用自定义脚本构建项目文件之前对其进行操作来管理它需要移动分支或减少项目的深度,我不需要移动任何东西,当时重要的是使用 Visual Studio 2010 的开发人员可以毫无问题地编译所有内容。我由此了解到,使用 MSBuild 编译/构建与使用 DevEnv/VS 不同,例如 MSBuild 不支持构建 Setup 项目,而 DevEnv 支持。
由于现在 VS 2012/DevEnv 2012 正在发生这种情况,再加上 VS 2012 不再支持安装项目(如 msbuild),再加上 VS/DevEnv 在文件长度方面存在同样的问题,看起来 VS 2012 最终使用 msbuild在引擎盖下或更紧密地集成,但是我没有找到任何文章来证实这一点。
更改分支结构/更改项目的深度由于多种原因(大型代码库、大量项目、风险、时间、工作量等),现在不是一个选择。
有人在 Visual Studio 2012 中有替代解决方案或解决此问题的方法吗?
问候,
PD:顺便说一句,我已经用链接文件检查了这篇文章 MSBuild 错误,但就像我在更改路径之前所说的那样,它现在不是一个选项。