NuGet для обновления на сервере непрерывной интеграции Jenkins


Я создаю пакет NuGet на этапе сборки в Jenkins (хотя Jenkins, вероятно, не связан).

Я запускаю командную строку NuGet следующим образом:

NuGet Pack MyProject.csproj

Существует также MyProject.файл nuspec в той же папке, я использую несколько переменных, таких как $id$, $version$ и т. д.

Мой nuspec имеет только несколько файлов, таких как этот:

<files>
    <file src="....BuildMyProject.dll" target="libnet40MyProject.dll" />
    <file src="....BuildMyProject.pdb" target="libnet40MyProject.pdb" />
    <file src="....BuildMyProject.XML" target="libnet40MyProject.XML" />
</files>

Моя проблема заключается в том, что когда я проверяю встроенное содержимое nupkg с помощью 7zip, я замечаю, что есть дополнительные файлы (DLL, pdb, xml и т. д.) это случилось в папке сборки, из которой я вытаскиваю свои файлы.

Эти файлы присутствуют на предыдущем этапе сборки и в конечном итоге будут использоваться в других пакетах NuGet (но я не хочу, чтобы они были включены в этот основной пакет).

, что приведет к NuGet, чтобы поставить дополнительных файлов в nupkg все?

1 2

1 ответ:

Когда вы пакуете из файла проекта, он будет включать в себя вещи, помеченные как содержимое в вашем проекте. Кроме того, ваш файл nuspec не должен добавлять XML pdb и dll для этого проекта, если он не находится в TargetPath (свойство msbuild).