Как скопировать текстовый файл, который был включен вместе с библиотеками DLL в пакет NuGet?
Когда я использую свой собственный пакет NuGet в другом решении (c:\dev\
для этого примера), результирующая файловая структура в c:\dev\package\projectId\lib\netstandard2.0\
имеет много DLL и текстовый файл, скажем file.txt
. Все библиотеки DLL копируются при создании решения, но текстовый файл остается позади.
В файле .nuspec
я изначально включил файл в <files><file src="foo\file.txt" target="lib\netstandard2.0"/></files>
. file.txt
попадает в папку пакетов при восстановлении пакета NuGet, но не копируется в каталог сборки.
Попытка 1: я попытался использовать свойство contentFiles
в файле nuspec, так как ссылка nuspec указывает на это несколько раз. Я получил команду nuget.exe pack
для работы с этим новым свойством (то есть без синтаксических ошибок), но не было никаких изменений в способе обработки содержимого (file.txt
).
Попытка 2: я пытался использовать файл projectId.targets
. При этом используется Target
с ItemGroup
, включающим файл. Затем я попытался использовать событие Copy
, указав папку назначения как $(OutputPath)
.
Кажется ужасно трудным скопировать файл, включенный в пакет, в каталог сборки, чтобы погрузиться в события MSBuild и тому подобное.
Я в недоумении, и любые указатели приветствуются.
Правки # 1:
Я попытался добавить этот раздел к метаданным, согласно предложению ниже:
<contentFiles>
<files include="any\any\file.txt" buildAction="EmbeddedResource" />
</contentFiles>
Это работает в небольшом тестовом случае. file.txt
прекрасно отображается как в Visual Studio, так и в каталоге сборки. Как ни странно, он не работает в моем основном проекте, использующем один и тот же точный синтаксис (я использую .NET Core 2.0 в обоих). Кроме того, в NuGet Package Explorer он отображается в содержимом пакета, когда он один. Но когда я добавляю что-то под <files><file src="lib\netstandard2.0\test.dll" target="lib\netstandard2.0"/></files>
, оно исчезает из этого представления.
Правки № 2:
Я думаю, что происходит что-то еще ... Вот файл .nuspec из нашего основного проекта . Когда я добавляю файл содержимого с приведенными ниже рабочими предложениями, он все равно не отображается (для .NET Core 2.0 или .NET Framework 4.7.1). Файл .targets
что-то портит?