Документация XML пакета NuGet не видна в приложении .NET Core 2.2 - PullRequest
0 голосов
/ 19 октября 2018

Я использую пакет NuGet , в котором есть XML-файл документации .

Но когда я включаю пакет в .NET Core 2.2 приложение, комментарии недоступны с IntelliSense .

Есть ли что-то, чего мне не хватает ни в пакете, ни в моем приложении, чтобы можно было просмотреть документацию с IntelliSense?

Использование VisualStudio 2017, Windows 10 .

Обновление для Clarity

Пакет NuGet представляет собой .NET Standard1.3 библиотека классов.В Visual Studio при сборке проекта я включаю параметры для создания пакета и файла документации.В файле проекта я вижу следующую группу PropertyGroup:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <DocumentationFile>C:\Users\[username]\[local path]\CommonEntities\CommonEntities\CommonEntities.xml</DocumentationFile>
</PropertyGroup>

Когда я открываю пакет, я вижу в каталоге lib / netstandard1.3 / , что CommonEntities.xml включен вместе с MakanalTech.CommonEntities.dll .

Но мне интересно, почему xml-файл удалил полное имя из MakanalTech.CommonEntities.xml как в проекте и просто CommonEntities.xml в пакете.Может быть, в этом причина проблемы?

Проблема в том, что когда я включаю пакет в качестве зависимости в другой проект, ни один из XML-комментариев / документации не виден.Поэтому я не могу навести указатель мыши на тип, чтобы увидеть его описание, и если я просматриваю определение , то ни одно из комментариев / документации не входит в определение.

Библиотека классов Продукт https://imgur.com/zbE7ngM (пока не могу опубликовать изображения)

Просмотр определения из другого проекта: https://imgur.com/pwmvpX7

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Наконец-то обнаружена проблема из этой записи.Это выглядит довольно некорректно в Visual Studio 2017, чтобы не обрабатывать это правильно и автоматически.

В файле .csproj я удалил <DocumentationFile>[filepath-to-xml]</DocumentationFile> и добавил <GenerateDocumentationFile>true</GenerateDocumentationFile>.

Затем я перепаковал библиотеку, очистил мой кеш nuget и перестроил новый проект, в который он был включен, и теперь у меня есть вся видимая документация XML.

0 голосов
/ 24 октября 2018

Документация XML пакета NuGet не отображается в приложении .NET Core 2.2

Так же, как вы обнаружили, что " в lib / netstandard1.3 / каталог, в который CommonEntities.xml включен вместе с MakanalTech.CommonEntities.dll.", файл .xml в папке lib, затем в соответствии с документом Из рабочего каталога на основе соглашения :

enter image description here

В качестве ссылки будет добавлен только файл .dll, файл .xml будет скопирован в папку проекта.По этой причине документация XML не отображается в приложении .NET Core 2.2.

Кроме того, поскольку вы используете проект .netstandard, файл .xml будет заблокирован и автоматически скопирован в папку проекта * 1024.* nuget issue 4837 .

Чтобы решить эту проблему, мы должны создать файл .nuspec с опцией contentFiles, чтобы включить файл .xml и добавить этот файл в проект, пожалуйста, проверьтеподробные сведения из другого потока .

Но если вы не хотите вручную редактировать .nuspec каждый выпуск, вы можете использовать событие после сборки, чтобы автоматически упаковать пакет nuget,например:

nuget pack "$(.NuspecFilePath)\xxx.nuspec" 

Или вы можете вручную добавить файл .xml в проект из пакета, этот пакет находится по пути: C:\Users\<UserName>\.nuget\packages.

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

...