【发布时间】:2022-02-03 06:27:46
【问题描述】:
在使用 nuget.exe 从 c# .net 6 类库创建 nuget 包时,我首先运行“nuget spec”以生成 nuspec 文件。然后,当尝试通过运行“nuget pack”创建 nuget 包 .nupkg 时,输出显示:
"在依赖项组中声明的一些目标框架 nuspec 和 lib/ref 文件夹在另一个中没有完全匹配 地点。请参阅以下操作列表: 将 net6.0 的依赖组添加到 nuspec"
以下打包文件夹需要框架版本中的点:lib/net60/myLibrary.dll
这是一个干净的 .net 6 类库,nuget.exe 是 6.0 版本。
为什么它认为我在 nuspec 和 lib/ref 文件夹的依赖项组中有任何内容与“其他位置”不匹配?我什至在 nuspec 中都没有依赖项组。
我好像在我的csproj中声明的目标框架中放了点,为什么它抱怨我的框架说明符缺少点?
我的 csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<PackageId>myLibrary</PackageId>
<Author>me</Author>
<Company>myCompany</Company>
<Description>Library defining common objects</Description>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
我的 nuspec:
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>$author$</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<!-- <icon>icon.png</icon> -->
<projectUrl>http://project_url_here_or_delete_this_line/</projectUrl>
<description>$description$</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>$copyright$</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
</package>
【问题讨论】:
-
为什么需要 nuspec?我可以像这样完美地运行
dotnet pack。 Here's my Github workflow -
@Pieterjan 我宁愿不使用 nuspec,实际上是在尝试对 dotnet pack 进行故障排除,因为它似乎不起作用。运行 dotnet pack 后,我期待 .nupkg 输出,但 dotnet pack 正在输出 .nuspec。然后似乎我需要针对 .nuspec 运行 nuget pack 以使任何事情发生。您是否获得了针对 .net6.0 的类库的 dotnet pack 的 .nuget 输出?尝试通过“dotnet add package myLibrary --version 1.0.0”将 dotnet 包的输出 nuspec 添加到另一个项目时总是显示“错误:没有可用于包 'myLibrary' 的版本”
-
@Pieterjan - 好吧,我只是一个 dotnet 包的白痴 - 在我看到在 obj.所以 dotnet pack 生成了一个 .nupkg 罚款 - 现在回到试图弄清楚为什么将它添加到另一个项目总是说“错误:没有可用的版本包 'myLibrary'。”
-
命令
dotnet nuget list source的输出是什么?您的软件包是否已发布到这些来源中的任何一个?您还可以添加具有本地文件夹引用的源。