我正在使用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联系并报告此问题。
希望它能对您有所帮助。