Swagger を使用して WebAPI のクライアント コードを生成しようとしています。私は通常、(WebAPI をデプロイした後に) メタデータ json ファイルをダウンロードし、クライアント クラス ライブラリのオプション "Add->Rest API Client.." を使用してこれを行います。
これにより、目的のプロジェクトにクライアント ライブラリが生成され、正常に動作します。しかし、Autorest.exe を使用してこのプロセスを自動化しようとしています。以下のように、クライアントコードを生成するためのパラメーターを使用してAutorest.exeを実行する小さなコードを作成しました。
string filename = @"C:\Users\xxxx\packages\AutoRest.0.9.7\tools\AutoRest.exe";
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.FileName = filename;
startInfo.Arguments = "-CodeGenerator CSharp -Modeler CompositeSwagger -Input http://WebAPIDomainNameGoesHere:80/swagger/docs/v1 -Namespace CESOutboundAPI.ClientLibrary";
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
しかし、新しく生成されたクライアント コードは機能せず (ビルドされず)、Visual Studio で GUI オプションを使用したときに出力として得られるものとは異なります。
新しく生成されたコードをビルドしようとすると、 .csファイルごとに次のエラー メッセージが表示されます。
The type or namespace name 'ValidationRules' does not exist in the namespace 'Microsoft.Rest' (are you missing an assembly reference?)
The type or namespace name 'SerializationException' does not exist in the namespace 'Microsoft.Rest' (are you missing an assembly reference?)
The type or namespace name 'Serialization' does not exist in the namespace 'Microsoft.Rest' (are you missing an assembly reference?)
The type or namespace name 'HttpResponseMessageWrapper' does not exist in the namespace 'Microsoft.Rest' (are you missing an assembly reference?)
.
.
完全に実行され、GUI が生成するものと一致するクライアント コードの自動生成について助けが必要です。前もって感謝します。