【问题标题】:How to publish specific App_Data files to an Azure VM (IIS)如何将特定 App_Data 文件发布到 Azure VM (IIS)
【发布时间】:2017-12-12 17:24:24
【问题描述】:

我使用 VS2017 和网络部署。 我有两个解决方案:我们在 Azure VM 上部署的 Web 应用程序,以及作为 Web 应用程序引擎的 C# 解决方案。

Web 应用程序有引擎的引用,但它还需要在 App_Data 中有 dll 才能工作(我的同事谈到运行时问题)。所以每次发布时,我都需要手动将 dll 复制粘贴到 VM App_Data 目录。

我想自动化这个过程,我尝试了一些解决这个问题的方法:

  • 将批处理脚本放入 Web 应用程序属性 => 构建 => 构建后,以便自动将 dll 从 bin/debug 复制到 App_Data。它会创建文件,但是当我发布时,App_data 文件会被忽略
  • 从 C:/MyProject/Properties/PublishProfiles/mypp.pubxml 编辑 pubxml 文件,但我没有 找到相关信息或文档以进一步推进。
  • 使用 Azure RunBooks,但之后我没有找到启动它的选项 出版。

我寻找一些我尚未找到的关于发布的帮助或文档,或者可能是一些用于 azure runbook 的技巧。

不要犹豫指出错别字,我现在很累。

【问题讨论】:

    标签: c# asp.net azure publish iis-8


    【解决方案1】:

    根据我的理解,您不需要添加构建后事件脚本。您可以在部署应用程序之前修改您的 *.pubxml 并添加一些 MSBuild 任务。下面是通过ms deploy部署应用时复制文件的设置,可以参考:

    <?xml version="1.0" encoding="utf-8"?>
    
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    
      <PropertyGroup>
        <!--****-->
      </PropertyGroup>
    
      <Target Name="Copy dlls to App_Data" AfterTargets="CopyAllFilesToSingleFolderForMsdeploy">
        <ItemGroup>
          <_FileForCopy Include="$(_PackageTempDir)\bin\ClassLibrary1.dll" />
          <_FileForCopy  Include="$(_PackageTempDir)\bin\Antlr3.Runtime.dll" />
        </ItemGroup>
        <Copy SourceFiles="@(_FileForCopy)" DestinationFolder="$(_PackageTempDir)\App_Data\%(RecursiveDir)" />
      </Target>
    
    </Project>
    

    另外,你可以关注那些关于MSBuild TargetsHow To: Recursively Copy Files Using the Task的教程。

    【讨论】:

    • 超级!这些链接上的信息对我来说仍然是一种抽象,是基本的 XML 还是更高级的东西?还是谢谢你!
    猜你喜欢
    • 2019-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    相关资源
    最近更新 更多