Я создаю пакет NuGet с иерархией папок, которая выглядит следующим образом:
ProjectDir
Infrastructure
class1.cs
class2.cs
Task
class3.cs
class3.cs
StuffToInclude
SampleCode
sampleclass1.cs.pp
sampleclass2.cs.pp
Images
image1.gif
image2.gif
Doc
text1.txt
text2.txt
Project.nuspec
Обратите внимание, что файл nuspec создается просто с помощью команды «nuget spec», а затем добавляется следующий раздел файла:
<files>
<file src="StuffToInclude\**\*.*" target="content" />
</files>
Я ожидаю (и хочу), чтобы в пакете была папка с содержимым, которая выглядит так:
content
SampleCode
sampleclass1.cs.pp
sampleclass2.cs.pp
Images
image1.gif
image2.gif
Doc
text1.txt
text2.txt
Однако я получаю немного большую папку содержимого, которая включает вторую копию папки «StuffToInclude», которая выглядит следующим образом:
content
StuffToInclude
Images
image1.gif
image2.gif
Doc
text1.txt
text2.txt
SampleCode
sampleclass1.cs.pp
sampleclass2.cs.pp
Images
image1.gif
image2.gif
Doc
text1.txt
text2.txt
Обратите внимание, что в нежелательной папке StuffToInclude нет подпапки SampleCode — каким-то образом упаковщик nuget понял, что файлы «.pp» не должны помещаться в содержимое, если это явно не запрошено. Но все эти другие файлы (во всех других папках) дублируются без необходимости, и их наличие там нежелательно, потому что, когда пакет потребляется, эта папка также дублируется в целевом проекте.
Я подумал, что, возможно, что-то вроде этого в nuspec поможет:
<files>
<file src="StuffToInclude\**\*.*" target="content" exclude="StuffToInclude\**\*.*"/>
</files>
но все варианты, которые я пробовал для атрибута «исключить», похоже, не помогают.
Как исключить файл «StuffToInclude» из папки содержимого?
Большое спасибо.
nuget spec
иnuget pack xx.xxspec
? Если нет, поделитесь реальной командой, которую вы используете. - person LoLance   schedule 11.07.2019