繁体   English   中英

使用Visual Studio发布Azure Web应用-不包括所有文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM