首页 > 解决方案 > MSBuilld 将不需要的文件从 Azure WebJob 复制到另一个 WebJob

问题描述

我们有 2 个 Azure Webjobs 连接到我们的 ASP WebApi 应用程序。他们都没有使用来自另一个的任何依赖项。然而,在发布之后,其中一个具有来自另一个的可执行文件。值得一提的是,这只发生在发布时。VS build 上一切正常。

这是 Azure FTP 上文件层次结构的样子

FTP WebJobs 文件结构

第一个,部署,正在按预期发布。这些是其文件夹中的可执行文件:

部署 WebJob 中的可执行文件

第二个,EmailSender,有来自 Deployment 的可执行文件:

EmailSender WebJob 中的可执行文件

奇怪的是,它们中还有 app.publish 文件夹,只包含一个相同的文件WebJob.Deployment.exe

App.publish 文件夹

部署工作工作正常。不幸的是,Azure 不识别 EmailSender 作业,而是执行部署。现在唯一可行的解​​决方案是在每次发布时直接从 FTP 手动删除部署的可执行文件。

现在我们尝试了一些来自 SO 和博客的东西,但没有成功。

编辑: 我确实完成了一些事情。它没有解决问题,但我们没有app.publish文件夹了。这是 SO 上的解决方案的链接。我不知道为什么我们要检查WebJob.Deployment应用程序的“ClickOnce 安全”选项。

更新: 我进行了一些测试,MSBuild发现了一些奇怪的东西。正如我之前所说,Visual Studio Publish工作正常 - 没有部署额外的可执行文件。但是当我运行MSBuild程序(具有相同的publish profile项目配置)时,我得到了额外的Deployment.exe内部EmailsSender文件夹。这是我运行的命令:

MSBuild RestAPI.Host.csproj /t:Build /p:Configuration="Develop" /p:Platform="AnyCPU" /p:DocumentationFile="RestAPI.Host.XML" /p:DeployOnBuild="true" /p:PublishProfile="fakebuild_develop.pubxml" /p:OutputPath="backend\build\app\\" /p:SolutionDir="backend\\"

谁能告诉我MSBuild和有什么区别VS Publish?我在互联网上找不到任何有用的东西。

标签: azuremsbuildwebjob

解决方案


推荐阅读