在我新创建的 BizTalk 2020 开发环境中,当我将 BizTalk Server 应用程序项目 (.btaproj) 添加到解决方案时,设置项目名称的对话框窗口显示 .NET 框架选择器,默认为 4.7 版.2 符合预期。
但是,当将项目添加到解决方案时,我可以在项目的属性中看到它以 .NET 4.6.1 为目标。有人见过这个吗?是错误还是安装有问题?
自然地,我将其更改为 4.7.2 版作为常规 BizTalk 项目,并且在 Visual Studio 中一切都可以正常编译。
但是在我们的构建服务器上,同样的项目失败了。我们将 Azure Devops 用于 CICD。在构建服务器上,我们安装了相同版本的 VS(2019 企业版)和 BizTalk Server Extention(v3.12.1.0)以及来自 BizTalk 服务器安装的 msbuild 工具。
在日志中,我首先收到警告:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): 警告 MSB3274: 主要参考“A.dll”不能已解决,因为它是针对“.NETFramework,Version=v4.7.2”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.6.1”更高的版本。[B.btaproj]*
在日志的更下方,btaproj 将找不到要包含在 .zip 包中的程序集。
上面的消息暗示我有不同的目标版本,但我没有。
现在奇怪的是我可以登录到构建服务器并克隆同一个项目并用VS编译它就好了。
使构建服务器成功编译项目(或任何其他带有 .btaproj 的 BizTalk 项目)的唯一方法是将 .NET 更改为 4.6.1(对于 .btproj 和 .btaproj),并且它都可以很好地编译并部署到 BizTalk 环境。
我检查了项目文件和签入到 Git 的文件,源文件似乎一切正常。我设置的清理标志来清理源和输出目录。我可以在构建服务器上使用 4.7.2 编译一个常规的 BizTalk 项目和 .NET 应用程序,这只是当我涉及一个它开始行为不端的 .btaproj 项目时。
谁能指出从哪里开始看?.btaproj 一开始似乎很可疑,但它也可以与构建服务器上的 msbuild 隔离,并且与使用 Visual Studio 编译不同。