7

複数のプロジェクトを含むソリューションを VS 2015 に移行しています。ベース プロジェクトは VS 2013 で問題なくビルドされます。しかし、VS 2015 でビルドしようとすると、以下のエラーが発生します。

C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.VisualBasic.Core.targets(56,5): エラー MSB6006: "vbc.exe" がコード -2146232797 で終了しました。

助けが必要です

4

12 に答える 12

7

MS テクニカル サポートと話しました。これは、VB コンパイラで確認されているバグです。彼らは、次のアップデートで修正されると言っています。

当面の回避策は、Nuget パッケージをインストールすることです。

Nuget パッケージをインストールするには、次の手順に従ってください。

  1. 影響を受けるプロジェクトを Visual Studio で開きます

  2. パッケージ マネージャー コンソールを開きます ([ツール] -> [NuGet パッケージ マネージャー] -> [パッケージ マネージャー コンソール])。

  3. 走る:

    Install-package Microsoft.Net.Compilers -version 1.1.1
    
于 2015-12-03T23:07:55.900 に答える
2

私の場合、インポートが問題の原因であることがわかりました。具体的には、他の多くの提案を試した後、ファイルから Microsoft.Office.Interop.Excel インポートを削除して、最終的にプロジェクトをビルドしました。

于 2016-01-28T08:24:29.257 に答える
1

Update 1 を VS 2015 にインストールした後、同じ問題が発生しました。

Brien King が回答で提案したように、Microsoft.Net.Compilers NuGet パッケージをダウンロードしました。これにより、1 つのプロジェクトの問題が修正されました。その後:

"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 個の既存のファイルを上書きしました。

これにより、すべてのプロジェクトで修正されました。これを行う前に、忘れずにバックアップを作成してください。

于 2016-01-07T10:24:11.607 に答える
1

すべての .vb ファイルを開くことで問題を修正し、余分なインポートを削除しました。これをすべてのファイルに対して実行してから、再構築します。これはうまくいくはずです。

于 2016-02-04T03:50:00.490 に答える
1

MS とのライセンスの不一致により、vs2015 をインストールするとすぐにこれを取得し始めましたが、これを失いました。:-(

新たに仕事に戻ると、この問題が発生します。

Brien Kingさんが提案したNUGETをやってみました。問題が解決しませんでした。Teodor Constantinescu が提案した KN を実行してみました。問題が解決しませんでした。

新しい簡単な Web アプリを試してみたところ、うまくいったので、vs2013 または vs2015 をアンインストールしませんでした。

プロジェクトをバックアップし (3 回、別の部屋に置いた USB スティックに 1 回)、ファイルのグループを削除し、各グループが引き出された後にコンパイルすることにしました。最終的に、私が最後に近づいたとき(ほとんど空のプロジェクト)、コンパイルされました。

ファイルのグループを追加し直すことで、この問題の原因となっている単一のファイルを特定しました。1行のコメントを外すことで問題を再現できます。

コードをさらにコメントアウトして、問題を 4 行のコードに分離しました。美しい。説明はこれ...

ssrs を参照する 2 つの Web リファレンスがあります

これらは現在、私のプロジェクトで SSRS_reportservice2010 および SSRS_ReportExecution2005 として定義されています

これらを機能させるのに苦労したため、Web 参照を削除して再追加したため、時間の経過とともに別の名前が付けられました。(パダワン)

なんらかの理由で、除外されていたファイルが今日含まれるようになりました(2013年--> 2015年の問題、またはグレッグマウスのおならの問題?私たちは決して知りません)

その(誤って含まれていた)ファイルには、古い参照のペアがありました

'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 が発生します。コンパイラのアップチャックを引き起こす悪いエイリアスについての何か。

SSRS_ReportExecution2005 という名前の Web サービス現行に関係する 3 行目と 4 行目で上記の説明を繰り返します。

それで、あなたはそれを持っています。これをデバッグするのに 8 時間かかりました。それが誰かを助けることを願っています。

他の投稿、コメントなどの多くでも、インポート/使用ステートメントについて言及されています。根本的なバグはおそらくそこのどこかにあります.... (はい、これはコンパイラのバグです)

PS - 興味深いことの 1 つは、問題のあるファイルの名前が W で始まっていたため、最初に出てきたファイルの 1 つだったことです。
そのファイルをプロジェクトからまとめて取り出しても、何も改善されませんでした。

問題のあるファイルを取り出すとすぐにアプリがコンパイルされなかった理由を説明できません。プロセスの非常に遅い段階で Web サービスを削除したことを申し出ることができますが、それらが問題だとは思いませんでした。

ファイルがなくなった可能性があることに困惑し、4行をコメントアウトするだけで問題が完全に機能するようになったときに、まだ問題が発生していました。

于 2016-02-12T04:01:47.067 に答える
0

私はちょうどこの同じ問題を抱えていました。私は、内部にイベントがあるクラスを持つことが原因でした。これを別のクラスで共有プロパティとして参照しました。共有プロパティが原因で、コンパイラが失敗していました。「共有」宣言を削除したところ、正常にコンパイルされました

于 2016-07-08T19:04:31.137 に答える
-1

この問題は、.NET Framework で使用されている機能に関連している可能性があります。プロジェクト フレームワークを 4.0 に変更してみて、問題が解決しないかどうかを確認してください。

于 2015-11-12T09:28:35.430 に答える