新しいコンピュータをセットアップし、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を使用します!
を参照してください。それ以外の場合、C#コンパイラは引き続き同じ無効なアセンブリを提供する可能性があります。しかし、一般に、ILSpyはRoslynのコンパイルされたアセンブリではうまく動作しません。だからあなたのアセンブリは確かに有効かもしれませんが、ILSpyはそれらを理解できません。 ILSpyのバグリストで、その詳細を確認することができます。 –
申し訳ありませんが、あなたの提案は問題を解決しません!問題は実際にはVSがMSBuild 14を使用していることです。前に述べたように、MSBuildを12のフォルダから実行した場合は、すべて問題ありません。私は14フォルダーの名前を変更し、VSはプロジェクトをロードしないので、フォルダーを探しています。解決策は、$(MSBuildToolsVersion)変数を変更/設定する方法を知っていれば簡単です。これは明白に14に設定され、ToolsVersion属性はもはや尊重されません(Microsoftが交換のための実用的な解決策を提示することなく)。私は14のフォルダの名前を12に変更し、その結果他のクラッシュが発生する... ARGH! – user1029883
私はなぜこれがdownvotedされているかわかりません。問題は「VS2015を以前のToolsVersionでビルドするにはどうすればよいですか? –