Visual studio 2012 为什么vbc会破坏命令行?
按照这项技术,我得到了用于编译我的项目的vbc命令行。我已经用它从命令行编译了这个项目,并且在我尝试过几次之后,它运行得很好。如果这意味着什么的话,命令行大约有25000个字符长 但今天当我运行命令时,我得到了一系列错误,如下所示:Visual studio 2012 为什么vbc会破坏命令行?,visual-studio-2012,vbc,Visual Studio 2012,Vbc,按照这项技术,我得到了用于编译我的项目的vbc命令行。我已经用它从命令行编译了这个项目,并且在我尝试过几次之后,它运行得很好。如果这意味着什么的话,命令行大约有25000个字符长 但今天当我运行命令时,我得到了一系列错误,如下所示: vbc : Command line error BC2001 : file 'admin\TestShare.aspxvb' could not be found 但是,当我查看实际的命令行以获取对该文件的引用时,它是正确的: C:\Windows\Micros
vbc : Command line error BC2001 : file 'admin\TestShare.aspxvb' could not be found
但是,当我查看实际的命令行以获取对该文件的引用时,它是正确的:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Vbc.exe ... admin\TestShare.aspx.vb ...
所有其他“找不到文件”错误都是类似的:它从文件名中删除字符(不仅仅是点,还有文本字符),然后它说找不到该文件
这是怎么回事
更新:第一个坏文件就在命令行中字符8192附近,这表明问题与Windows路径过长有关。但是如果这就是问题所在,我如何从命令行构建我的应用程序呢?如果您只需要从命令行构建,为什么不使用它呢?所需的只是一个
msbuild YourProject.proj
,以使事情顺利进行,并且比冗长的方式短得多;-)从VS命令提示符下运行。有任何原因不能从命令行使用msbuild YourProject.proj
?稍微短一点;-)胡乱猜测:如果您得到如此巨大的命令行,那么您必须编译嵌套在许多子目录中非常深的项目。当超过winapi文件名长度的硬上限259个字符时,就会出现问题。把你的解决方案移近根。@ChrisO:D'oh,因为我没有想到它。不知何故,我一直专注于vbc方法,从未备份过,也没有想到另一种方法。我尝试了msbuild,它解决了我的问题。如果你发表评论作为回答,我会接受。@HansPassant:长度的主要来源是文件名,但它们似乎使用相对路径,所以这没有帮助。但是ginormous路径显然是一个坏方法的标志,Chris O给了我一个更好的方法。感谢你们两位的输入。我完全假设msbuild生成了这个命令行。你是手工打字的吗?哎哟