BizTalk 部署框架引发 MSBuild 错误 MSB4061

BizTalk deployment framework throws MSBuild errors MSB4061

我在使用 BizTalk 开发框架时遇到一些问题。

我的 BizTalk 项目构建得非常好。但是当使用 Visual Studio 中的 'Deploy BizTalk Solution' 选项时,MSBuild 并不高兴。我正在部署到我们内部网络上的服务器,但与我的开发机器不在同一个盒子上。

这些是错误(它似乎在抱怨缺少一堆程序集,但我的设置是普通的 BizTalk 2013 R2 开发工具安装和部署框架是否需要在开发机器上安装完整的服务器? ):

DeployFileAdapterPhysicalPaths: Configuring FILE adapter physical paths from binding file PortBindings.xml... Processing FILE adapter physical paths (Send)... Processing FILE adapter physical paths (Receive)...

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: The "TerminateServiceInstances" task could not be instantiated from "C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.Tasks.BizTalk.dll". [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.BizTalk.Operations, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
[C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj] C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: File name: 'Microsoft.BizTalk.Operations, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj] C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: at DeploymentFramework.BuildTasks.TerminateServiceInstances..ctor() [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: WRN: Assembly binding logging is turned OFF.
[C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.

[C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj] C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: Note: There is some performance penalty associated with assembly bind failure logging. [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4061: [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj]

C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk.0\BizTalkDeploymentFramework.targets(1986,5): error MSB4060: The "TerminateServiceInstances" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name. [C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj] Done Building Project "C:\Users\asmiddle\Source\Workspaces\NYCC.LSI\Biztalk.Deployment\Biztalk.Deployment.btdfproj" (Deploy target(s)) -- FAILED.

Build FAILED.

Visual studio中的'Deploy BizTalk Solution'函数用于将您的应用程序部署到本地 biztalk,而不是远程biztalk服务器。

官方文档在这里:

Deploy and Undeploy an Application

The Deploy BizTalk Solution option will deploy your application into the local BizTalk server. If the application is already deployed, then it will be undeployed and re-deployed. The Visual Studio Output window will display the complete output from the deployment process.

除了 Zee 的正确观点外,这是失败的,因为您的本地计算机上没有安装 BizTalk。您不能从 Visual Studio 为 BizTalk 部署到远程计算机,即使使用 BTDF。它试图在本地部署但失败了,因为它找不到 BTDF 部署所依赖的一些 BizTalk 程序集。

如果您想远程部署,您应该使用 BTDF 构建 MSI 并 运行 该目标服务器上的 MSI。

最后 Dan 离这里很近了。这些错误是由于我在同一个解决方案中有一个安装程序项目,该项目在 GAC 中安装了自定义管道。它对依赖项非常顽皮 - 它检测到很多 Biztalk 程序集作为依赖项,但如果完成卸载,它将全部删除!从而削弱了盒子上的 Biztalk 设置。

关于本地安装的要点。