Подтвердите, что пакет содержит файлы содержимого
Если вы не уверены, включен ли файл содержимого в пакет nuget, вы можете быстро подтвердить это, открыв файл пакета .nupkg
ипытаясь найти файлы содержимого, которые вы пытаетесь включить.Согласно документации :
Технически говоря, пакет NuGet - это просто ZIP-файл, который был переименован с расширением .nupkg и содержимое которого соответствует определенным соглашениям.
Поскольку вы установили действие сборки для вашего файла на Content
(как вы указали выше), вы должны ожидать его там, вероятно, в каталогах content
и contentFiles
.(Для дальнейшего использования может оказаться полезным немного познакомиться с внутренней структурой / соглашениями пакетов nuget.)
Как только вы подтвердите, что ваш файл содержимого содержится в вашем пакете, вам кажется, что вынужно только выяснить, как получить доступ к содержимому этого файла.
Вариант 1. Доступ к файлу содержимого из пакета Nuget из другого проекта
Если вы хотите иметь возможность ссылаться на содержимоефайл, содержащийся в пакете Nuget из другого проекта, затем сначала добавьте ссылку на пакет Nuget в новый проект.Как только вы это сделаете, вы должны увидеть файлы содержимого, включенные в пакет, которые будут отображаться в ссылочном проекте.Теперь вы можете установить параметры Build Action и Copy to Output Directory как обычно, как если бы вы добавили эти файлы непосредственно в ссылочный проект.
Вот пример того, как это делается с помощью Visual Studio 2017:
В приведенном выше примере TestLib
является.net core 2.0 библиотека классов, которая содержит только каталог с 2 файлами.Каждый имеет Build Action
из Content
и значение Copy to Output Directory
, соответствующее его имени.Пакет nuget был создан из TestLib
и впоследствии на него ссылается проект ConsoleApp
.Каталог Content
из проекта TestLib
(со всеми его файлами) автоматически появляется в проекте ConsoleApp
после добавления ссылки на пакет.Однако по умолчанию для параметра Copy to Output Directory
будет задано значение «Не копировать» для всех файлов содержимого, поэтому вы, вероятно, захотите изменить это на основе приведенного выше фрагмента файла проекта.
Если, однако,Ваши требования не позволяют вам изменить параметр Copy to Output Directory
в файле содержимого из ссылочного проекта, и вы хотите, чтобы он был установлен по умолчанию на Always
вместо Never
, тогда я отсылаю вас к этот SO ответ о том, как этого добиться.(Совет: если вы еще не используете файл .nuspec
, вы можете скопировать автоматически созданный файл из файла .nupkg
, чтобы использовать его в качестве отправной точки.)
[Unlikely] Вариант 2: Прямой доступ к файлу содержимого из пакета Nuget
Если вы хотите получить прямой доступ к файлу содержимого из пакета Nuget, вы можете автоматизировать процесс извлечения файла (ов) содержимого из файла .nupkg
иделать с ним в соответствии с вашими потребностями.Я не думаю, что это то, что вы хотели, но я думаю, что кто-то хотел сделать это раньше.
Даже если это не дало вам ответ, который вы искали, я надеюсь, что это помогло в некоторыхпуть.