Joe*_*use 7 msbuild csproj nswag
我使用 Visual Studio 中的“连接服务”功能引用 OpenAPI 服务(2002 Prev 5,但 VS 2019 中的行为相同)。该工具基于 NSwag。文档说我可以将 Nswag 的所有设置应用到* .csproj<OpenApiReference>中 element的某些元素中。
这可行,但我想使用与默认(obj)不同的输出路径,并且此设置无法处理 .. 路径和带空格的路径。Nswag 命令行工具上的相同设置可以按预期工作。
我在 * .csproj中使用不带空格的输出路径的第一种方法:
<ItemGroup>
<OpenApiReference Include="swagger.json"
CodeGenerator="NSwagCSharp" Namespace="Demo.Proxy"
ClassName="ContractService"
OutputPath="ConnectedServices\Backend\ContractService.cs"
>
<Options>/DateTimeType:DateTime /GenerateClientInterfaces:true</Options>
</OpenApiReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这会生成文件obj\ConnectedServices\Backend\ContractService.cs。正确的。
但我想使用“Connected Services”文件夹(带空格):
<ItemGroup>
<OpenApiReference Include="swagger.json"
CodeGenerator="NSwagCSharp" Namespace="Demo.Proxy"
ClassName="ContractService"
OutputPath="Connected Services\Backend\ContractService.cs"
>
<Options>/DateTimeType:DateTime /GenerateClientInterfaces:true</Options>
</OpenApiReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这会生成一个文件obj/Connected。它停在空间之前。不正确。
我试过:
%20--> 相同的结果,在空格前停止"从开始到结束 --> 无效字符错误..\退出obj的路径--> 无效字符错误另外,出于好奇,我使用了这样的属性:
<PropertyGroup>
<ServicesPath>ConnectedServices\ContractService.cs</ServicesPath>
</PropertyGroup>
<ItemGroup>
<OpenApiReference Include="swagger.json" CodeGenerator="NSwagCSharp" Namespace="Demo.Proxy" ClassName="ContractService"
OutputPath="$([System.IO.Path]::Combine($(MSBuildProjectDirectory),$(ServicesPath)))"
>
<Options>/DateTimeType:DateTime /GenerateClientInterfaces:true</Options>
</OpenApiReference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这里的结果相同:“ConnectedServices”有效,“Connected Services”无效;空格杀死了路径,结果只是“已连接”,其余部分被忽略。
但是,这解决了“obj”文件夹问题并将文件移动到正确的级别。
我认为这是OpenApiReference中的一个错误,但我想在提交错误报告之前询问一下,因为我可能忽略了一些东西。万一。
| 归档时间: |
|
| 查看次数: |
2000 次 |
| 最近记录: |