Публикация веб-приложения Azure в Visual Studio - не включая все файлы - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть проект MVC, опубликованный в Azure из Visual Studio в виде веб-приложения.В решении у меня есть проект, настроенный как «плагин», который используется веб-приложением и устанавливается с помощью Unity DI.Локально это работает, но когда я публикую в Azure, файлы плагина не развертываются.Вот как настраивается мое решение и структура проекта:

Solution MyProject
    >nuget
    >...
    >Plugins
        >Plugin.Widget.GoogleAnalytics
    >MyProject.Web
        >Properties
        >References
        >...
        >Plugins
            >bin
            >Plugin.Widget.GoogleAnalytics (excluded from project but copied to this directory after project is built above)
        >Views
        >...
        Web.config

Запуск локально, если я удаляю Solution MyProject/MyProject.Web/Plugins/Plugin.Widget.GoogleAnalytics после компиляции, плагин не появляется.Если я скопирую содержимое Solution MyProject/Plugins/Plugin.Widget.GoogleAnalytics/bin обратно в Solution MyProject/MyProject.Web/Plugins/Plugin.Widget.GoogleAnalytics, плагин появится снова.

Проблема в том, что при публикации в моем веб-приложении Azure оно не включает Solution MyProject/MyProject.Web/Plugins/Plugin.Widget.GoogleAnalytics.Если я отправляю по FTP этот каталог со своего компьютера, он все равно не загружается после перезапуска приложения.

Я попытался включить Solution MyProject/MyProject.Web/Plugins/Plugin.Widget.GoogleAnalytics в проект, но это вызывает проблемы компиляции, поскольку он должен быть добавленDI, и он также не работает после публикации.

Есть ли способ включить необходимые файлы (не включенные в проект) во время публикации, так что работает локально на Azure?Или есть другой способ пойти по этому поводу.

Если я не проверяю опцию публикации на Remove additional files at destination, обычно выдается эта ошибка, когда сайт пытается загрузить:

Method not found: 'Microsoft.Practices.Unity.IUnityContainer MyProject.Core.ContainerManager.GetConfiguredContainer()'

Я пытался отладить это, но этоочень сложно, поскольку это происходит только в веб-приложении Azure.

Я нашел этот вопрос, но он не дал никакой информации по этим вопросам.

РЕДАКТИРОВАТЬ Мне удалось заставить плагин работать на Azure, выполнив следующие действия.1) Запускать в среде разработчика локально в режиме отладки.2) Опубликовать в Azure в качестве отладочной сборки.3) Каталог плагинов для веб-приложений FTP на Azure.4) Перезапустите приложение Azure.Он работает на лазурном, но это отладочная сборка.5) Публикация из локальной среды разработки в виде сборки выпуска.

После этого я смог опубликовать как сборку выпуска и проверить Remove additional files at destination.Это удаляет плагины в лазурной.Затем я FTP-каталогом плагинов веб-приложения, чтобы лазурить и запускать и останавливать веб-приложение, и это работает.Может быть, я могу сделать шаги отладки из этого, но теперь это работает.

1 Ответ

0 голосов
/ 20 февраля 2019

Heinrich,

Можете ли вы попробовать выполнить этот шаг ниже и посмотреть, как он работает.

  • Убедитесь, что вы установили действие сборки для Content, и они будут развернуты.
  • Попробуйте выполнить развертывание в режиме выпуска.

Надеюсь, это поможет.

MV

...