MSBuilld将不需要的文件从Azure WebJob复制到另一个WebJob

时间:2018-11-07 08:04:58

标签: azure msbuild webjob

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

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

FTP WebJobs file structure

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

Executables in Deployment WebJob

第二个是EmailSender,它具有Deployment中的可执行文件:

Executables in EmailSender WebJob

奇怪的是,这两个文件夹中都还包含app.publish文件夹,仅包含一个文件和同一文件WebJob.Deployment.exe

App.publish folder

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

现在,我们尝试了SO和博客中的一些方法,但没有成功。

编辑: 我确实做到了。它没有解决问题,但是我们没有app.publish文件夹了。 Here is the link to solution on 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\\"

有人可以告诉我MSBuildVS Publish有什么区别吗?我在互联网上找不到有用的东西。

0 个答案:

没有答案