2017-12-13 25 views
0

Swagger定義のURLを指定すると、NSwagを使用してサービスのC#プロキシを生成するサービスを開発しています。プロキシ全体は、単一のC#ファイルに含まれています。Roslyn CSharpCompilationを使用して.NET標準2.0 DLLを生成

Roslynを使用して.NET Standard 2.0 DLLに生成されたコードのコンパイルを自動化したいと思います。これは、CSharpCompilationクラスを使用してメモリ内で行う必要があります。

Visual Studio 2017で.NET Standard 2.0クラスライブラリプロジェクトを作成し、Newtonsoft.Json(10.0.3)およびSystem.ComponentModel.Annotations(4.4.0)のNuGet依存関係を追加しました。 。私は、プロジェクトの種類がNETStandard.LibraryにSDKの依存関係をもたらすこともわかります。

私はRoslynでDLLを生成するためにプロジェクトファイルを使用しないことを理解していますが、私は同じDLLを生成するのと同じ手順を見つけようとしています。

+0

なぜプロジェクトファイルを使用していないのですか?もっと簡単になります。 –

+0

私はあなたがプロジェクトファイルをフィードすることができる例は見ていません。 –

+0

dotnet cliを使用するだけです –

答えて

1

.NET標準DLLを構築する鍵は、MetadataReferenceオブジェクトとして追加する正しいDLLを選択することでした。 Visual Studio 2017 .csproj形式で明示的にそれらを参照していないため、これらの内容は当初はわかりませんでした。

netstandard.library用のNuGetパッケージをダウンロードし、内容をループして、各DLLをMetadataReferenceとして追加することができました。 NetStandard.Libraryに.csproj SDKの依存関係を追加するのと同じ目標が達成されると私は信じています。

これらの参考文献を追加することで、私は生成されたコードをコンパイルすることができました。私は出力アセンブリを.NET Core 2.0コンソールアプリケーションから参照してテストしました。

これを行う簡単な方法があるかもしれません - 私はそれを聞いてうれしいです!

関連する問題