dotnet swagger tofile与ARM Mac上的swagger tofile的比较

l3zydbqr  于 2022-11-06  发布在  Mac
关注(0)|答案(1)|浏览(174)

大家好,想知道是否有人知道为什么在Apple Silicon上运行dotnet swagger与通过dotnet tool install在全球安装Swashbuckle.AspNetCore.Cli相比不起作用。
对于上下文,我在.csproj文件中有一个带有PostBuild目标的.NET 6 API,用于在构建时生成swagger.json,如下所示

<Target Name="SwaggerToFile" Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU' AND '$(NCrunch)' != '1'" AfterTargets="AfterBuild">
    <Exec Command="dotnet tool restore" />
    <Exec Command="dotnet swagger tofile --output doc.json $(OutputPath)$(AssemblyName).dll" />
</Target>

在Apple Silicon上,此步骤失败,您会收到以下错误消息

It was not possible to find any compatible framework version
         The framework 'Microsoft.AspNetCore.App', version '5.0.0' (arm64) was not found.
           - The following frameworks were found:
               6.0.5 at [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]

         You can resolve the problem by installing the specified framework and/or SDK.

^据我所知,上述内容不存在
但是,如果我全局安装Swashbuckle.aspNetCore.cli,然后将命令更改为swagger tofile --output doc.json $(OutputPath)$(AssemblyName).dll,它就可以工作了。尝试理解为什么在这里会有差异,如果它是同一个CLI工具。
我只有.NET6.0SDK和运行时,对Rosetta没有什么特别的想法。

dgiusagp

dgiusagp1#

我使用的是M2 Macbook Pro,我需要将ff添加到我的.zshrc中,以使swagger CLI工作。
~/.zshrc
export PATH="$HOME/.dotnet/tools:$PATH"
我记不起具体的细节了,但是它和添加到环境变量的路径有关。在本例中,dotnet工具路径应该是$HOME/.dotnet/tools
在此更改之后,我可以通过swagger tofile ...使用swagger命令

相关问题