我正在将一个包含多个项目的解决方案迁移到VS 2015。在VS 2013中,基础项目可以正常构建。但是当我尝试在VS 2015中构建时,出现了下面的错误。
C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.VisualBasic.Core.targets(56,5): error MSB6006: “vbc.exe” 以代码-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” 以代码-2146232797退出。
请求帮助。
我和微软技术支持人员进行了交流,确认这是VB编译器中的一个已知问题。他们表示这个问题将在下一个更新中修复。
与此同时,可以通过安装Nuget包来解决问题。
请按照以下步骤安装Nuget包。
Open the affected project in Visual Studio
Open the Package Manager Console (Tools -> NuGet Package Manager -> Package Manager Console)
Run:
Install-package Microsoft.Net.Compilers -version 1.1.1
最新的Visual Studio 2015服务更新已经解决了这个问题。相关下载链接为KB 3110221,详细信息请查看此KB文章。
'1 Imports SSRS_ReportingService2010
'2 Imports SSRS = SSRS_ReportingService2010
'3 Imports SSRS_ReportExecution
'4 Imports SSRS_E = SSRS_ReportExecution
第一行曾经引用WS,现在在我的应用程序中被命名为SSRS_reportservice2010。您可以取消注释它,然后编译和运行。请注意,您会收到警告,因为您正在引用一个空名称空间。
当然,第二行是长名称的别名,因为我是一个极其懒惰的打字员,而且我坚持我的代码可读性,长名称是不好的。如果取消第二行的注释,则会导致vbc错误-2146232797。请注意,取消2或1&2的注释都会导致此错误。这似乎与错误的别名有关,会导致编译器出错。
请重复上述讨论,其中第3行和第4行与当前命名为SSRS_ReportExecution2005的Web服务有关。
所以你有了答案。我花了8个小时来调试它。希望能对某人有所帮助。
许多其他帖子,评论等也提到了Import / Using语句。根本的错误可能就在那里....(是的,这是编译器中的错误)
PS-有趣的是,有问题的文件名以W开头,因此是最先出现的之一。将该文件完全从项目中删除后,情况并没有改善。
我无法解释为什么一旦我移除了有问题的文件,应用程序就无法编译。我可以提供的是,我在很晚的阶段才删除了Web服务,我只是认为它们不是问题所在。Imports cf = SizingEngine.conversionFactors
所需步骤: 1. 创建一个新项目 2. 创建名为Foo的类 3. 创建名为Bar的类
在Bar中,添加以下行
imports bar_ = project1.NoClassByThisNameExists
点击f5
注 - VS今天没有报告任何可供下载的更新。我相信这个问题最终会得到解决。
我通过打开所有的.vb文件并删除多余的导入来解决了这个问题。对于所有文件都要这样做,然后重新构建即可。这应该可以解决问题。
在安装VS 2015更新1后,我遇到了同样的问题。
根据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个现有文件。
这解决了所有项目的问题。记得在执行此操作之前创建备份。