Упаковка нескольких веб-проектов в один пакет Nuget - PullRequest
0 голосов
/ 06 ноября 2019

Я смотрю на фреймворк, который имеет 3 проекта:

Front End UI
    \bin
        \my front end dlls
    \images
        \theimages.png

API
    \bin
        \my API dlls

Database Migrations
    \bin
        \my migration dlls

Моя настройка / структура в IIS выглядит следующим образом:

Front End UI (Top level IIS Site)
    \bin
        \my front end dlls
        \Database Migrations
            \my migration dlls
    \images
        \theimages.png

    \API (Converted to an App in IIS)
        \bin
            \my API dlls

Я бы хотел, чтобы мой пакет nuget выводился вэта структура.

Пользователи создадут новый пустой проект в Visual Studio и добавят этот пакет nuget. Это дало бы им структуру, показанную выше. Они добавят только пару файлов конфигурации в этот новый проект.

В IIS они затем создадут новый сайт, укажут его на Front End и преобразуют папку API в приложение.

Должна быть довольно простая настройка.

Моя проблема в том, что я могу создать файл nuspec и вручную включить файлы API и Migrator в content\API\bin и content\bin\Database Migrators, но проблема в том, что по умолчанию. Файл gitignore по умолчанию исключит эти папки подпапок, и эти библиотеки не будут зафиксированы.

Я бы действительно хотел не допустить, чтобы разработчики настраивали файл .gitignore для принудительного включения API\binи Database Migrators\bin папок, если это возможно.

Есть ли лучший способ сделать то, что я здесь делаю?

Ура,

1 Ответ

0 голосов
/ 06 ноября 2019

Есть ли лучший способ сделать то, что я здесь делаю?

Боюсь, ответ отрицательный, по умолчанию, если вы добавляете решение для управления исходным кодом в VisualStudio, компонент git в VS создаст файл .gitignore в solution directory с содержимым по умолчанию [Bb]in/. (По крайней мере, для VS2017 + VS2019)

Таким образом, он всегда игнорирует все каталоги bin/ или Bin/ в каталоге решений. Как я знаю, вам необходимо изменить файл .gitignore, если вы хотите включить папки подпрограмм в систему контроля версий.

Кроме того: Если честно, я не уверен, зачем вам нужно фиксировать dll, я полагаю, вы копируете сборки из папок выходного бина трех проектов в content\bin\Database Migrators и content\API\bin, в этой ситуации нет необходимости добавлять эту подпапку в управление исходным кодом.

И кроме использования content\bin или content\API\bin, вы также можете рассмотреть с использованием целейфайл при создании пакета nuget . Вы можете указать много действий в этом файле, и он будет выполняться при создании проекта, который использует этот пакет. Таким образом, есть вероятность, что вы можете определить copy task , чтобы скопировать сборки из nuget в нужное вам место в проекте, который потребляет пакет. Но это может быть намного сложнее, я не думаю, что это лучше, чем вы хотите: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...