Как решить "Не удалось найти тип или имя пространства имен 'Didstopia' (отсутствует директива using или ссылка на сборку?)" - PullRequest
0 голосов
/ 02 марта 2020

Я использую VS2019, пытаясь создать простую. NET Стандартную библиотеку классов 2.0, которая использует Didstopia.PDFSharp. NET Стандартный пакет nuget 2.0.

Вот минимальное воспроизведение, начиная с моей. Файл 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 из пакетов папка, библиотека классов компилируется нормально.

Если я разветвляюсь, клонирую и добавляю ссылку на проект в Didstopia.PDFSharp.dll, все компилируется нормально.

Я сделал "чисто", удалил bin Папки & obj удалили пакет Didstopia из папки C: \ Users \ [myuserid] \. nuget \ packages \ didstopia.pdfsharp бесчисленное количество раз.

Я не уверен, что делать дальше. В любом случае, можно ли получить от компилятора больше информации о , почему не нравится ссылка на пакет?

1 Ответ

1 голос
/ 02 марта 2020

Я не уверен, что еще попробовать дальше. В любом случае, можно ли получить от компилятора больше информации о том, почему ему не нравится ссылка на пакет?

Я думаю, что это проблема пакета nuget Didstopia.PDFSharp 1.0.0-beta8. Со своей стороны, когда я устанавливаю этот пакет в net стандартный проект библиотеки классов 2.0, я столкнулся с той же проблемой, что и вы, и чувствую себя довольно странно.

Как совет удалите содержимое <IncludeAssets>, например, так:

<IncludeAssets></IncludeAssets>

Этот тег собирается использовать содержимое пакета nuget, и при его использовании вы не можете ссылаться на содержание dll. Пожалуйста, смотрите this .

Кроме того, , поскольку эта проблема больше связана с самим пакетом и представляет собой бета-версию, предварительную версию, которая может иметь некоторые проблемы, я предлагаю Вы можете связаться с автором и сообщить об этой проблеме.

Надеюсь, это может помочь вам.

...