Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2012 为什么vbc会破坏命令行?_Visual Studio 2012_Vbc - Fatal编程技术网

Visual studio 2012 为什么vbc会破坏命令行?

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命令行。我已经用它从命令行编译了这个项目,并且在我尝试过几次之后,它运行得很好。如果这意味着什么的话,命令行大约有25000个字符长

但今天当我运行命令时,我得到了一系列错误,如下所示:

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生成了这个命令行。你是手工打字的吗?哎哟