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

问题描述 投票:0回答:1

我有一个MVC项目从Visual Studio作为Web应用程序发布到Azure。在解决方案中,我将项目设置为“插件”,Web应用程序使用该插件并使用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添加,并且在发布后也不起作用。

有没有办法在发布期间包含必要的文件(不包括在项目中),那么在本地工作的是什么?或者还有另一种方法可以解决这个问题。

如果我没有检查发布到Remove additional files at destination的选项,它通常会在网站尝试加载时抛出此错误:

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

我试图调试它,但它很难,因为它只发生在天蓝色的网络应用程序上。

我发现this问题,但它没有提供任何有关此问题的信息。

编辑我能够通过以下步骤让插件在azure上工作。 1)在调试模式下在本地运行dev环境。 2)发布到azure作为调试版本。 3)FTP web应用程序插件目录到azure。 4)重启azure应用程序。它运行在azure中,但它是一个调试版本。 5)从本地开发环境发布作为发布版本。

在此之后,我能够发布为发布版本并检查Remove additional files at destination。这将删除天蓝色的插件。然后我将web应用程序插件目录FTP到azure并启动和停止Web应用程序,它的工作原理。也许我可以采取调试步骤,但这现在正在运行。

asp.net-mvc visual-studio azure unity-container azure-web-app-service
1个回答
0
投票

亨利,

你可以试试下面的步骤,看看它是否有效。

  • 确保将构建操作设置为Content,它们将被部署。
  • 尝试在发布模式下部署。

希望能帮助到你。

MV

© www.soinside.com 2019 - 2024. All rights reserved.