我有一个Visual Studio解决方案,正在尝试构建以在Docker的Linux安装上运行。作为该过程的一部分,我需要从Swagger文档的nuget包之一复制XML文档。在Windows开发工具箱上,我可以执行此操作,但是在Linux上,它不起作用。问题似乎是当我在linux上查看nuget包的lib文件夹时,我只看到一个.dll,而在Windows上,我看到了.dll和.xml。以下是我的还原命令
RUN dotnet restore "src/Management/Management.csproj"
为什么不能在Linux上提取XML文件?
另一方面,似乎linux使用所有小写字母创建目录。因此,如果我要提取nuget包Test.MyPackage-3.4.3,它将位于Linux上的/root/.nuget/.../test.mypackage/3.4.3。在我的csproj文件中,我使用%(PackageReference.Identity)
引用了程序包,该程序返回驼峰式大小写。也有解决方法吗?
答案 0 :(得分:0)
不确定是否仍然是一个相关问题。
Microsoft提供的Docker映像中有一个Env变量NUGET_XMLDOC_MODE
,它设置为skip
。
如果在Dockerfile中将其更改为ENV NUGET_XMLDOC_MODE=none
,它将解决此问题。但是,映像生成时间肯定会增加,因此您可以考虑将dotnet restore
作为启用缓存的单独步骤。
更多信息可以在这里找到 https://docs.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-environment-variables