我们有 2 个 Azure Webjobs 连接到我们的 ASP WebApi 应用程序。他们都没有使用来自另一个的任何依赖项。然而,在发布之后,其中一个具有来自另一个的可执行文件。值得一提的是,这只发生在发布时。VS build 上一切正常。
这是 Azure FTP 上文件层次结构的样子
第一个,部署,正在按预期发布。这些是其文件夹中的可执行文件:
第二个,EmailSender,有来自 Deployment 的可执行文件:
奇怪的是,它们中还有 app.publish 文件夹,只包含一个相同的文件WebJob.Deployment.exe
:
部署工作工作正常。不幸的是,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
?我在互联网上找不到任何有用的东西。