2015-11-18 20 views
10

新しいコンピュータをセットアップし、VS2015をインストールしました。私が現在作業しているプロジェクトをコンパイルすると、無効なコードが生成されます(ILSpyはコンパイル不可能なソースを作成します)。 Toolsバージョン12を使用してVS2013で問題なく動作しました。Visual StudioでToolsバージョン12をコンパイルする2015

ログファイルにはToolsVersion 12がないため、これをインストールしました。しかし、私がやることは何でも、ToolsVersion 14を使ってコンパイルするのはいつもです.VS2013に同梱されているMSBuild.exe(Toolsバージョン12を使用)を手動で呼び出すことができ、コードは正しいです。 VS2015に同梱されているMSBuild.exe(ツールバージョン14を使用)と同じ処理を行うと、INCORRECTコードが返されます。だから私が必要とするすべてのツールセット12

を使用するには、VS2015であるMSDNは言う:

は、「Visual Studioの2013年以降、MSBuildのツールセットのバージョンは、Visual Studioのバージョン番号と同じである視覚内で、このツールセットへのMSBuildのデフォルト値。 Studioとコマンドラインのには、プロジェクトファイルで指定されているツールセットのバージョンに関係なく、/ ToolsVersionフラグを使用してオーバーライドできます。

MSBuildを手動で使用すると、手動でうまく動作しますが、これをVS 2015でどのように設定しますか?環境変数のどれも動作しません、常にツールセット14を使用します!

+1

を参照してください。それ以外の場合、C#コンパイラは引き続き同じ無効なアセンブリを提供する可能性があります。しかし、一般に、ILSpyはRoslynのコンパイルされたアセンブリではうまく動作しません。だからあなたのアセンブリは確かに有効かもしれませんが、ILSpyはそれらを理解できません。 ILSpyのバグリストで、その詳細を確認することができます。 –

+0

申し訳ありませんが、あなたの提案は問題を解決しません!問題は実際にはVSがMSBuild 14を使用していることです。前に述べたように、MSBuildを12のフォルダから実行した場合は、すべて問題ありません。私は14フォルダーの名前を変更し、VSはプロジェクトをロードしないので、フォルダーを探しています。解決策は、$(MSBuildToolsVersion)変数を変更/設定する方法を知っていれば簡単です。これは明白に14に設定され、ToolsVersion属性はもはや尊重されません(Microsoftが交換のための実用的な解決策を提示することなく)。私は14のフォルダの名前を12に変更し、その結果他のクラッシュが発生する... ARGH! – user1029883

+0

私はなぜこれがdownvotedされているかわかりません。問題は「VS2015を以前のToolsVersionでビルドするにはどうすればよいですか? –

答えて

3

@ user1029883によると、VS2015が12.0のビルドツールでインストールされていると動作しないので、他の人に役立つ場合はこの回答を残しておきます。 @ alexandrulのコメント)をVisual Studioの複数のバージョンの代わりに使用できます。


残念ながら、これを行うための簡単な方法があるようには思えません。

  • 希望ToolsVersionに設定されているMSBUILDLEGACYDEFAULTTOOLSVERSION
  • すべてのプロジェクトファイルのトップレベルProject要素でToolsVersion属性を確認し、変数の環境を設定します。手間のかかる方法は、しかし、があります。

あなたはロスリンベースのコンパイラが削除されるように、.NET 4.6をアンインストールする必要がありますOverriding ToolsVersion Settings page on MSDN

+0

私はこれを試したが、うまくいきません。トッププロジェクトファイルと環境変数の下: <?xml version = "1.0" encoding = "utf-8"?> MSBUILDLEGACYDEFAULTTOOLSVERSION 1 – user1029883

+0

恩赦自分の無知:どのようにあなたはVS2013をインストールせずにtoolsversion 12.0をインストールしたのですか? –

+0

@GuyBoltonKing http://www.microsoft.com/en-us/download/details.aspx?id=40760 "コンピュータにVisual Studioがインストールされていない場合は、ビルドツール2013を使用して管理対象アプリケーションをビルドできます(旧バージョンでは、これらのツールはスタンドアロン.NET Frameworkに含まれていました)。 " – alexandrul

関連する問題