[英]Azure web app publish with Visual Studio - not including all files
我有一个MVC项目作为网络应用程序从Visual Studio发布到Azure。 在解决方案中,我有一个项目设置为“插件”,该项目由Web应用程序使用并使用Unity DI安装。 在本地这是可行的,但是当我发布天蓝色时,并未部署插件文件。 这是我的解决方案和项目结构的设置方式:
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 Web应用程序时,它不包括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 Web应用程序上发生。
我找到了这个问题,但没有提供有关此问题的任何信息。
编辑我可以按照以下步骤使插件在Azure上工作。 1)在开发环境中以调试模式在本地运行。 2)发布为Azure,作为调试版本。 3)将FTP Web应用程序的插件目录设为Azure。 4)重新启动azure应用。 它以天蓝色运行,但它是调试版本。 5)从本地开发环境发布作为发布版本。
之后,我就可以发布为发布版本,并选中“ Remove additional files at destination
。 这会以天蓝色的方式删除插件。 然后,我通过FTP将Web应用程序插件目录设置为Azure,并启动和停止Web应用程序,并且它可以正常工作。 也许我可以取消调试步骤,但是现在可以正常工作了。
海因里希,
您可以在下面的步骤中尝试一下,看看它是否有效。
希望能帮助到你。
MV
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.