我正在使用VS2019,试图建立一个简单的.NET Standard 2.0类库,该库使用Didstopia.PDFSharp .NET Standard 2.0 nuget包。

这是从我的.csproj文件开始的最小复制:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Didstopia.PDFSharp" Version="1.0.0-beta8">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>

</Project>

这是我的Class1.cs文件:
using System;
using Didstopia.PDFSharp;

namespace ClassLibrary1
{
    public class Class1
    {
    }
}

编译时,我收到以下消息:
Class1.cs(2,7,2,16): error CS0246: The type or namespace name 'Didstopia' could not be found (are you missing a using directive or an assembly reference?)

在Visual Studio中,Class1的代码编辑窗口中,“using Didstopia.PDFSharp”行的Didstopia用红色下划线标出。

如果不是使用程序包引用,而是使用程序包文件夹中对Didstopia.PDFSharp.dll的程序集引用,则可以很好地编译类库。

如果我 fork ,则克隆并添加对Didstopia.PDFSharp.dll的项目引用,则可以正常编译。

我已经完成“清理”工作,删除bin和obj文件夹,从无数次从C:\ Users \ [myuserid] \。nuget \ packages \ didstopia.pdfsharp文件夹中删除了Didstopia程序包。

我不确定下一步该怎么做。无论如何,有没有要从编译器中获取有关的更多信息,为什么不喜欢软件包引用?

最佳答案



我认为这是nuget包Didstopia.PDFSharp 1.0.0-beta8的问题。在我这边,当我将此包安装在一个网络标准2.0类库项目中时,我遇到了您所描述的相同问题,对此感到很奇怪。

作为建议,请删除<IncludeAssets>的内容,如下所示:
<IncludeAssets></IncludeAssets>
该标记将消耗nuget程序包的内容,并且在使用它时,您不能引用dll的内容。请参阅this

此外,,因为此问题与软件包本身更相关,并且它是Beta版,预发行版,可能存在一些问题,建议您与the author联系并报告此问题。

希望它能对您有所帮助。

09-05 21:46