找不到MSBuild错误CS2001源文件

诺曼底乌贼

我正在尝试使用MSbuild在一个项目上进行命令行构建。解决方案和项目在VS2012中构建良好,但是当我执行包含以下内容的批处理文件时

msbuild.exe project.csproj

它失败。有太多错误,我什至无法向上滚动。对于不同的文件,它们都是相同的错误,都来自解决方案中的其他项目:

CSC : error CS2001: Source file 'folder\filename.cs' cound not be found [c:\folder\project.csproj]

我发现了其他有关文件名长度的问题。我试图删除路径中的每一层,但无济于事。我感到奇怪的是,即使找不到的源文件路径确实是来自其他项目,它也不是相对的。我在这里有点茫然。为什么我的构建失败?

诺曼底乌贼

好的,虽然这实际上可能不是其他人看到的相同问题,但我解决了我的特定问题:

有问题的项目是MVC 4项目。MVC有一个选项,您可以在项目文件中启用该选项,该文件在表面上构建剃刀视图,这在表面上看起来是编译过程的一部分,因此您可以在构建时捕获通常在运行时出现的错误。

尚未特别良好地支持此功能,当您从命令行进行构建时,它会在进行这些中间构建时开始在怪异的地方寻找东西。视图在临时目录中构建,然后尝试从项目目录复制视图,然后一切都崩溃了。

另外,我们需要知道一些构建后事件的解决方案目录,但这对大多数人来说都是无关紧要的。我们还构建了一个程序包,然后直接进行部署,以使将内容复制到所需的各个位置变得更加容易。对于更复杂的项目,以软件包的形式进行构建还可以正确解析项目可能拥有的所有解决方案参考。我将其包括在此处是为了便于完成。

这是可以正常运行的行:

msbuild.exe /v:q  projectName.csproj /t:Package /p:MvcBuildViews=false;SolutionDir=%SolutionDir%;DeployOnBuild=true

可以真正解决问题的简单版本:

msbuild.exe projectName.csproj /p:MvcBuildViews=false;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章