如何将特定的App_Data文件发布到Azure VM(IIS)

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

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

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

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

  • 在web app properties => build => afterbuild中设置批处理脚本,以便自动将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个回答
0
投票

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

<?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的教程进行操作。

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