【问题标题】:Unable to find package ***. No packages exist with this id in source(s): "Local Nuget", Microsoft Visual Studio Offline Packages, nuget.org找不到包裹***。源中不存在具有此 ID 的包:“Local Nuget”、Microsoft Visual Studio 脱机包、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 包查找。我该如何解决这个问题?

【问题讨论】:

    标签: c# nuget nuget-package


    【解决方案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 上阅读有关文件结构的清晰文档),重新生成包,发布它并增加修复版本。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2022-01-22
    • 2019-11-02
    • 2019-08-31
    • 2020-01-20
    • 2019-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多