我正在将具有多个项目的解决方案移至 VS 2015。基础项目在 VS 2013 中构建得很好。但是当我尝试在 VS 2015 中构建时,出现以下错误。
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.VisualBasic.Core.targets(56,5): error MSB6006: "vbc.exe" exited with code -2146232797.
需要帮助请
我正在将具有多个项目的解决方案移至 VS 2015。基础项目在 VS 2013 中构建得很好。但是当我尝试在 VS 2015 中构建时,出现以下错误。
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.VisualBasic.Core.targets(56,5): error MSB6006: "vbc.exe" exited with code -2146232797.
需要帮助请
我与 MS 技术支持进行了交谈。这是 VB 编译器中已确认的错误。他们说它将在下一次更新中修复。
同时,解决方法是安装 Nuget 包。
请按照这些说明安装 Nuget 包。
在 Visual Studio 中打开受影响的项目
打开包管理器控制台(工具 -> NuGet 包管理器 -> 包管理器控制台)
跑:
Install-package Microsoft.Net.Compilers -version 1.1.1
我有一个大型解决方案在更新到 VS 2015 Update 1 RTM 后无法构建。就我而言,有许多警告
Imports '<import name>' 中指定的命名空间或类型不包含任何公共成员或找不到。确保命名空间或类型已定义并包含至少一个公共成员。确保导入的元素名称不使用任何别名。
这发生在“vbc.exe”崩溃之前。一旦我删除了那些额外的、不必要的导入,解决方案就会正确构建。
就我而言,我发现导入导致了这个问题。具体来说,在尝试了很多其他建议之后,从文件中删除了 Microsoft.Office.Interop.Excel 导入,最终构建了我的项目。
此问题已在最新的 Visual Studio 2015 服务更新中得到解决。相关下载是KB 3110221,在此 KB 文章中进行了讨论。
为第二个答案道歉,但这一个要简单得多。上次后 8 天,我在另一个项目中再次遇到错误。
这一次,我通过给一个班级起一个更好的名字来开始新的一天。我有一个名为conversionFactors的类,我将该类重命名为常量以更好地表示该类所包含的内容。
立即得到错误 vbc.exe" exited with code -2146232797. SizingEngine
追踪到这条线。我应该使用重命名实用程序。是的。没有争论。编译器也应该更健壮。啧啧微软。
Imports cf = SizingEngine.conversionFactors
所以重现步骤 1. 创建一个新项目 2. 创建一个名为 Foo 的类 3. 创建一个名为 Bar 的类
在 Bar 中,添加以下行
进口 bar_ = project1.NoClassByThisNameExists
点击 f5
ps - VS 今天没有报告任何可供下载的更新。我相信这会在某个时候得到解决。
在尝试了 Microsoft.Net.Compilers -version 1.1.1 和KB3110221 之后,我的解决方案仍然无法编译并出现相同的错误。直到后来我才注意到该错误伴随着一个警告,它让我知道解决方案引用的库之一是针对.NET Framework 4.5.2编译的,而我的解决方案是针对.NET Framework 4.5编译的。我针对.NET Framework 4.5重新编译了上述库,并且解决方案编译得很好。
现在我的问题在尝试了三个修复后得到了解决,我不知道最后一个是否会完成,但我希望它会有所帮助。
由于与 MS 的许可分歧,我在安装 vs2015 后立即开始得到这个,我输了。:-(
刚回到工作岗位,我遇到了这个问题。
我尝试做 Brien King 建议的 NUGET。问题依然存在。我尝试做 Teodor Constantinescu 建议的 KN。问题依然存在。
我尝试了一个新的微不足道的网络应用程序,一切都很好,所以我没有卸载 vs2013 或 vs2015。
我选择备份我的项目(3 次,一次在我放在另一个房间的 U 盘上)并删除文件组并在每个组被拉出后进行编译。最终,当我接近尾声时(几乎是一个空项目),它编译了。
通过添加文件组,我确定了导致此问题的单个文件。我可以通过取消注释一行来重新创建问题。
进一步注释掉代码,我将问题隔离为 4 行代码。美丽的。解释是这样...
我有 2 个引用 ssrs 的网络参考
这些目前在我的项目中定义为 SSRS_reportservice2010 和 SSRS_ReportExecution2005
我努力让这些工作,所以随着时间的推移,当我删除和阅读网络参考时,我有了不同的名字。(学徒)
无论出于何种原因,一个被排除在外的文件,今天被包含在内(2013--> 2015 年问题,还是 greg mouse 放屁问题?我们永远不会知道)
在那个(错误包含的)文件中,有一对旧的参考资料
'1 Imports SSRS_ReportingService2010
'2 Imports SSRS = SSRS_ReportingService2010
'3 Imports SSRS_ReportExecution
'4 Imports SSRS_E = SSRS_ReportExecution
第 1 行用于引用现在在我的应用程序中命名为 SSRS_reportservice2010 的 WS 您可以取消注释,然后编译并运行。请注意,您确实会收到一条警告,指出您正在引用一个空的命名空间。
第 2 行当然是长名称的别名,因为我是一个非常懒惰的打字员,而且我坚持我的代码是可读的,长名称在恕我直言。
第 2 行,如果未注释,会导致 vbc 错误 -2146232797 请注意,取消注释 2 或 1 & 2 会导致错误。它与导致编译器升级的错误别名有关。
用第 3 行和第 4 行重复上述讨论,这与名为 SSRS_ReportExecution2005 的 web 服务当前有关
所以你有它。这花了我 8 个小时来调试。希望它可以帮助某人。
许多其他帖子、评论等也提到了导入/使用语句。根本错误可能就在其中的某个地方....(是的,这是编译器中的错误)
PS - 有趣的一件事是,有问题的文件的名称以 W/W 开头,因此是最先出现的文件之一。
当我把那个文件从项目中取出时,没有任何改善。
我无法解释为什么在我取出有问题的文件后应用程序没有编译。我可以提出我在这个过程中很晚才把网络服务拿出来,我只是不认为它们是问题所在。
令我感到困惑的是,文件可能已经消失了,当我现在可以简单地注释掉 4 行并且一切正常时,我仍然遇到了这个问题。
我通过打开我所有的 .vb 文件来解决这个问题,这些文件正在删除额外的导入。对所有文件执行此操作,然后重新构建。这应该有效。
将更新 1 安装到 VS 2015 后,我遇到了同样的问题。
正如 Brien King 在他的回答中建议的那样,我已经下载了 Microsoft.Net.Compilers NuGet 包。这解决了一个项目的问题。接着:
"c:\Program Files (x86)\MSBuild\14.0\Bin\vbc.exe" 有版本 1.1.0.51109 ...userprofile.nuget\packages\Microsoft.Net.Compilers\1.1.1\tools\vbc.exe 有更高版本 1.1.0.51202
因此,我将整个“1.1.1\tools”目录复制到“14.0\Bin”目录中,并覆盖了 27 个现有文件。
这为所有项目修复了它。请记住在执行此操作之前创建备份。
我刚遇到同样的问题。我的原因是有一堂里面有一个事件。我在另一个类中将其引用为共享属性。共享属性导致编译器失败。我删除了“共享”声明,现在可以正常编译
当我有一个引发错误的构建后事件时,我遇到了这个错误。没有迹象表明这是问题所在,只是 -2146232797 错误。
所以在项目的属性页中检查这个。转到 Compile -> Build Events ... 并检查 Post-build event 命令行字段。我想这可能发生在 Pre-build 事件中,所以也要检查一下。
该问题可能与 .NET Framework 中的某些使用功能有关。尝试将项目框架更改为4.0,看看问题是否仍然存在。