У меня есть проект 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-каталогом плагинов веб-приложения, чтобы лазурить и запускать и останавливать веб-приложение, и это работает.Может быть, я могу сделать шаги отладки из этого, но теперь это работает.