azure - 为 Azure WebJob 部署子文件夹

标签 azure azure-webjobs

我正在使用 Visual Studio 将 WebJob 部署到 Azure,但项目的构建输出文件夹中的任何子目录都没有复制到 Azure(根据在 FTP 文件夹中查找以及由于应用程序未正确执行) 。有什么方法可以让部署复制所有文件和文件夹吗?

更多信息:子目录来自引用的项目,并且文件确实设置了“始终复制”。它们确实出现在 WebJob 项目的输出构建目录中

更新: 所以看来在某个时候这个问题已经被修复并且现在可以按预期工作

最佳答案

我编写了一个自动化部署,到目前为止似乎可以正常工作:

将您的 WebJob 项目添加为网站项目的构建依赖项

我将 WebJob 部署到独立的 Azure 网站,因此该网站没有直接引用该项目。我不希望 WebJob 项目的构建输出包含在网站的 bin 中,而只希望包含正确的 app_data 路径。如果您不担心 MSBuild 兼容性,可以使用 Visual Studio 设置构建依赖项。或者您可以编辑网站项目并添加其他 <Reference> 的引用标签:

<ProjectReference Include="..\PathToJobs\Jobs.csproj">
  <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>

在 PostBuild 上,将 WebJob bin 输出复制到神奇的 app_data 文件夹

WebJobs 预计位于 app_data\jobs\[type]\[name] ,因此我们将 WebJob bin 复制到网站项目中的该文件夹中:

set webjob_dist_path=$(ProjectDir)app_data\jobs\continuous\Job
IF EXIST "%webjob_dist_path%" (
  RMDIR "%webjob_dist_path" /S /Q
)
XCOPY "$(SolutionDir)Jobs\bin\$(ConfigurationName)\*" "%webjob_dist_path" /Q /E /I /Y

告诉网站在部署时包含 WebJob magic 文件夹

(参见:How do you include additional files using VS2010 web deployment packages?)

<PropertyGroup>
  <CopyAllFilesToSingleFolderForPackageDependsOn>
    CustomCollectFiles;
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  </CopyAllFilesToSingleFolderForPackageDependsOn>
  <CopyAllFilesToSingleFolderForMsdeployDependsOn>
    CustomCollectFiles;
    $(CopyAllFilesToSingleFolderForPackageDependsOn);
  </CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
  <ItemGroup>
    <_CustomFiles Include="app_data\jobs\**\*" />
    <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
      <DestinationRelativePath>%(RelativeDir)%(Filename)%(Extension)</DestinationRelativePath>
    </FilesForPackagingFromProject>
  </ItemGroup>
</Target>

使用普通的 Azure 发布配置文件部署网站。完成!

关于azure - 为 Azure WebJob 部署子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840167/

相关文章:

azure - 无法将自定义添加到 B2C 登录页面

Azure 批处理服务在作业完成时添加 Webhook

Azure Devops Powershell 不显示 Get-ChildItem 的文件名

azure - 使用 Azure Web 功能接收 Twilio SMS 消息

Azure WebJob 不传递参数

azure - 如何集成测试Azure Web Jobs?

visual-studio - 如何重新打开 azure 部署警告模式 "deployment environment in use"?

azure - Hive 管理的表不会掉落在 azure 数据湖存储上

php - Laravel 5.1 后台任务在连接到 Azure Web 作业时查询数据库无法工作

Azure WebJob 部署不断失败