c# - Visual Studio Nuget Manager 报告自定义 Nuget 的 .NETStandard2.0 部分“不受支持”
问题描述
我们有一个 .NetStandard2.0 项目,该项目旨在按照此处解释的技术打包到一个 nuget 中:
https://stackoverflow.com/a/45004898/863651
使用如下所示的 nuspec 文件:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<!-- https://stackoverflow.com/a/45004898/863651 we had to resort to employing a seperate nuspec -->
<!-- file because thats the canonical way to include more than one dlls into the resulting nuget -->
<metadata>
<id>$id$</id>
<tags>$tags$</tags>
<owners>$owners$</owners>
<version>$version$</version>
<authors>$authors$</authors>
<description>$description$</description>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<dependencies>
<group targetFramework=".NETFramework4.5">
</group>
<group targetFramework=".NETStandard2.0">
<dependency id="Newtonsoft.Json" version="12.0.1" exclude="Build,Analyzers" />
</group>
</dependencies>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System" targetFramework=".NETFramework4.5" />
<frameworkAssembly assemblyName="Microsoft.CSharp" targetFramework=".NETFramework4.5" />
</frameworkAssemblies>
</metadata>
<files>
<file src="bin\$config$\netstandard2.0\*.dll;bin\$config$\netstandard2.0\*.pdb;" target="lib\netstandard2.0\" />
</files>
</package>
如您所见,有一个部分针对.NetStandard2.0。nuget 包由我们的构建服务器使用以下 msbuild scriptlet 生成:
<MSBuild Projects="C:\path\to\foo.csproj" Targets="Clean;foo;" Properties="SkipRestoringNugetPackages=true;Configuration=Release;Platform=AnyCPU;" ToolsVersion="15.0" />
生成的 nuget 包将被推送到具有以下规格的 nuget 服务器中:
NuGet.Server v2.10.3.0
通过 .Net4.8 项目的 Visual Studio 2017 Nuget 包管理器查看包时,边栏上会显示以下内容:
为什么 .NetStandard2.0 部分显示“不支持”?其他包不显示类似的内容,我在 nuspec 的 xml 中找不到任何拼写错误。
解决方案
我刚刚发现您的问题可能与 Nuget.Server 包的版本有关,因为您不使用 nuget pack 命令。使用相同的 nuget 包,当我使用 Nuget.server 2.10.3时,它显示不受支持,在我将Nuget.server更新到 3.4.1 后,现在一切正常。让我知道是否有帮助:)
我在本地制作了一个包,当我尝试在 VS 中使用它时一切正常。在我将相同的包部署到 nuget 服务器 2.10.3 后,它显示不支持!
因此,如果在部署到服务器后尝试从服务器获取包时出现问题。我认为这是因为您使用的Nuget.Server包太旧了!更新 Nuget.Server 包可以帮助解决此问题。
推荐阅读
- javascript - 发生碰撞碰撞时数组拼接中的多个对象
- python - Python:使用 Tkinter(ttk) 构建一个简单的表单
- java - 如何检查数组是否包含一次部分值?
- php - 如何强制浏览器从服务器而不是从缓存加载 html 和 css 页面?
- css - 多重过滤器过渡
- excel - 在运行时打开文本文件以进行手动编辑
- python - pygame 关于添加图层的帮助
- java - 启用 Firebase Crashlytics
- ruby-on-rails - 如何使用 3 个选项来管理调查模型
- python-3.x - AttributeError:模块“tensorflow.app”没有属性“标志”