Вопрос

Я развертываю свои пакеты с помощью Teamcity и Octopus.Я создаю пакеты с помощью Teamcity, а затем использую Octopus для развертывания в разных средах.У меня есть папка «Ресурсы», которую необходимо скопировать как отдельный шаг в Teamcity.Теперь я хочу, чтобы эта папка была включена в пакет, чтобы я мог затем развернуть этот пакет на удаленных серверах в других доменах.Я определил следующий файл, чтобы включить папку ресурсов в папку содержимого основного проекта.но происходит следующее: он просто создает папку в месте назначения, но не копирует другие файлы в проекте.Пожалуйста, следуйте инструкциям, поскольку все, что я хочу, это включить папку ресурсов в пакет вместе с файлами моего веб-сайта публикации.Я просто хочу, чтобы папка ресурсов была частью пакета.Пожалуйста, направляйте

 <?xml version="1.0" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <metadata>
<id>Services</id>
<version>1.0.0.0</version>
<authors></authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Services.nuspec build package</description>
<releaseNotes />
 </metadata>
 <files>
  <file src="..\Resources\**\*.*" target="Content\Resources" />
</files>
</package>

Содержимое пакета после создания пакета с использованием приведенного выше кода: –

 . _rels
 . package
 . content\resources 
 . [content_type
 . Services.nuspec
Это было полезно?

Решение

Если вы используете OctoPack, такое поведение ожидаемо.Цитируя документация на GitHub:

Если <files> существует, OctoPack не будет пытаться автоматически добавлять дополнительные файлы в ваш пакет, поэтому вам необходимо четко указать, какие файлы вы хотите включить.

Если вы пойдете по этому пути, вам нужно будет указать все остальные файлы, которые вы хотите включить в файл. <files> раздел нуспека.

Если вы не используете OctoPack, применяется аналогичное правило.Видеть документация на nuget.org

Если вы следуете соглашениям, описанным в разделе «Создание пакета», вам не нужно явно указывать список файлов в файле .nuspec.Обратите внимание: если вы укажете какие-либо файлы, соглашения игнорируются, и в пакет включаются только файлы, перечисленные в файле .nuspec.

Обновлять

Один гибридный метод, который я видел, заключается в использовании цели MSBuild Publish для создания и публикации веб-сайта в локальной папке (чтобы отфильтровать все файлы времени компиляции, такие как исходный код .cs), добавления дополнительных файлов, а затем просто включить <file src="**/*.*" /> чтобы упаковать все в корневую папку публикации.Требуется небольшая настройка корневых путей / nuget.exe, но это может сделать процесс немного более аккуратным и немного меньшим обслуживанием.

Полезная информация здесь это может помочь вам начать работу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top