找不到包裹***。源中不存在具有此 ID 的包:“Local Nuget”、Microsoft Visual Studio 脱机包、nuget.org

Posted

技术标签:

【中文标题】找不到包裹***。源中不存在具有此 ID 的包:“Local Nuget”、Microsoft Visual Studio 脱机包、nuget.org【英文标题】:Unable to find package ***. No packages exist with this id in source(s): "Local Nuget", Microsoft Visual Studio Offline Packages, nuget.org 【发布时间】:2020-05-19 01:55:17 【问题描述】:

我必须要打包一个库并在其他项目中使用。这个库引用了另一个项目,我不想作为一个包发布。为了将它包含在包中,我在 .cproj 文件中添加了以下几行:

 <PropertyGroup>
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
      </PropertyGroup>

      <Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
        <ItemGroup>
          <BuildOutputInPackage Include="@(ReferenceCopyLocalPaths-&gt;WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" />
        </ItemGroup>
      </Target>

因此,我在 packages lib 文件夹中有两个 .dll,还有这种 nuspec 文件:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>NugetSample</id>
    <version>1.0.1</version>
    <authors>NugetSample</authors>
    <owners>NugetSample</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Package Description</description>
    <dependencies>
      <group targetFramework=".NETCoreApp3.1">
        <dependency id="referenced project name" version="1.0.0" exclude="Build,Analyzers" />
      </group>
    </dependencies>
  </metadata>
</package>

但我再次收到此错误:

找不到包引用的项目名称。源中不存在具有此 ID 的包:Local Nuget、Microsoft Visual Studio Offline Packages、nuget.org

Visual Studio 似乎再次尝试将此依赖项作为 nuget 包查找。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您可以将该项目作为您要打包的主项目中的简单参考。 然后在 nuspec 文件中,作为依赖项元素的兄弟添加 references:

<references>
   <reference file="referencedfile.dll" />
</references>

如果你想添加简单的文件,你也可以使用兄弟元素files

<files>
    <file src="bin\$configuration$\referencedfile.pdb" target="lib\net461" />
</files>

【讨论】:

谢谢,我现在就试试。 您必须将其从依赖项中删除并移至引用 我试过了,但同样的情况。打包后不修改nuget包有没有办法解决这个问题? 对不起,我停在这里,但我会尝试重述您的问题。如果您使用依赖项,则应在 nuget 服务器源(消息说:我找不到具有该名称的 nuget)中作为 nuget 包。如果您使用引用,它会在包内复制您正在引用的 dll 项目。正确更改 nuspec 文件(您可以在 msdn 上阅读有关文件结构的清晰文档),重新生成包,发布它并增加修复版本。祝你好运。

以上是关于找不到包裹***。源中不存在具有此 ID 的包:“Local Nuget”、Microsoft Visual Studio 脱机包、nuget.org的主要内容,如果未能解决你的问题,请参考以下文章

NU1101找不到包 NLog。源 Microsoft Visual Studio Offline Packages 中不存在具有此 ID 的

错误NU1101:无法找到软件包”。源中不存在具有此ID的软件包:Microsoft Visual Studio脱机软件包,nuget.org

CircleCI 说在您的 Gemfile 中列出的任何源中都找不到您的包

vs中程序包源中找不到你要的包

idea找不到存在的包

Fastlane Beta:Bundler::GemNotFound:在任何源中都找不到 CFPropertyList-3.0.0