2016-10-24 13 views
1

私は最近、Roslynコンパイラに関する情報を掘り下げましたが、いくつかの可能性について疑問を抱いています。私はfeatures/tuplesブランチを使用してRoslynリポジトリからRoslynコンパイラをビルドし、VS15Preview\MSBuild\15.0\Binフォルダに必要なDLLを置き換えようとしています。私は、次のエラーメッセージMSBuildがVS15プレビューで新しいRoslynコンパイラを使用するようにする

重大度コード説明プロジェクトファイルの行の抑制状態

エラーを受け取るDLLを交換し、コンソールアプリケーションプロジェクトをビルドするときには、指定されたタスクの実行ファイル「csc.exeを」実行することができませんでした。ファイルまたはアセンブリ 'Microsoft.CodeAnalysis.CSharp、Version = 2.0.0.0、Culture = neutral、PublicKeyToken = 31bf3856ad364e35'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。 (HRESULTからの例外:0x80131040)

私は交換してみてくださいファイル:Microsoft.CodeAnalysis.dllMicrosoft.CodeAnalysis.Csharp.dllcsc.exe

C#のカスタムRoslynコンパイラをビルドしてVS15プレビュー内で置き換えることはできますか?

答えて

4

これは、新しいroslynビルドのbinディレクトリにCscToolPath msbuild変数を設定する方法の1つです。

msbuildコマンドライン(たとえば、[スタート]> [開発者コマンドプロンプト])が最も便利です。

<PropertyGroup> 
    <CscToolPath>C:\your\roslyn\bin</CscToolPath> 
</PropertyGroup> 

もちろん、これだけで、ビジュアルではないが、ビルドに影響を与えます。あなただけcd実行上の任意のソリューションディレクトリにすることができます:あなたはより頻繁にそれを行う場合

msbuild /p:CscToolPath=<PathToYourRoslynBinDir>` 

また.csprojの内側にそれを行うことができますスタジオかインテリセンス。それをフックするには、RoslynレポのTrying Your Changes in Visual Studioガイドに従う必要があります。 Roslynソリューションでは、VSIXプロジェクトの1つを構築する必要があります。これらのプロジェクトの1つを実行すると、Visual Studioの実験的なインスタンスが起動します。ここでは、変更を再生できます。

+0

これはうまくいくと思われ、私が探していたようです。しかし、私は少し質問があります。私はいくつかのタプルのものを変更し、私のVS15はいくつかのエラーがあると言っていますが、私は 'msbuild'アプローチを使ってプロジェクトをコンパイルすると何の問題もありません。 エディタ自体にこれらのエラーメッセージが表示されないように、変更したDLLをVS15に接続するように指示することはできますか?明らかにVS15は他のDLLを使用するためです。必要なすべてのdllが%MSBuildToolsPath%に配置されているようです。私が間違っているなら私を訂正してください。ありがとう! – Semuserable

2

しかし、M0saの答えが働く可能性がありますが、それはMSBuild対応のビルドのみを提供します。 VSでテストしたい場合は、Roslyn's own documentationに従ってください。そのページでは、Visual Studio(VisualStudioSetupの箇条書き)とCtrl-Shift-B「ソリューションのビルド」のインテリセンスを置き換えて、ソリューションを実際に実行する方法を説明しています(CompilerExtension)。

0

Roslynのビルドを試したいのであれば、VS15でRoslyn.slnを開き、Roslynプロジェクト(デバッグの有無にかかわらず)を実行することで、これを行うことができます。 Roslynのビルドを使用するVS15の新しいインスタンスが開始されます。

+0

いいえ、Roslynビルドを実験的なものではなく、既存のVS15プレビューエディタで使用したいと思います。 – Semuserable

関連する問題