我正在尝试使用 Swagger 为 WebAPI 生成客户端代码。我通常通过下载元数据 json 文件(在部署 WebAPI 之后)然后为客户端类库使用选项“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 生成的内容相匹配的客户端代码。提前致谢。