【发布时间】:2020-05-19 18:09:23
【问题描述】:
我有一个由多个 BizTalk btproj 项目组成的解决方案。
我也有Microsoft Azure Logic Apps Enterprise Integration Tools for Visual Studio 2015 2.0 installed。
当我使用 Visual Studio 2015 构建解决方案时,它成功了。如果我使用 MSBuild 这样做,我会遇到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets(29,5):错误 MSB4018: “MapperCompiler”任务意外失败。 [C:\Users\User01\Documents\visual studio 2015\Projects\SampleProject\Transform\myTransform.btproj]
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets(29,5):错误 MSB4018: System.IO.FileNotFoundException:无法加载文件或程序集 'Microsoft.Azure.Integration.DesignTools.Studio.Extensibility, 版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' 或 它的依赖项之一。该系统找不到指定的文件。 [C:\Users\User01\Documents\visual studio 2015\Projects\SampleProject\Transform\myTransform.btproj]
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets(29,5):错误 MSB4018:文件名: 'Microsoft.Azure.Integration.DesignTools.Studio.Extensibility, 版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' [C:\Users\User01\Documents\visual studio 2015\Projects\SampleProject\Transform\myTransform.btproj]
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets(29,5):错误 MSB4018:在 Microsoft.Azure.Integration.DesignTools.BizTalkProject.BuildTasks.MapperCompiler.Execute() [C:\Users\User01\Documents\visual studio 2015\Projects\SampleProject\Transform\myTransform.btproj]
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets(29,5):错误 MSB4018:在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [C:\Users\User01\Documents\visual studio 2015\Projects\SampleProject\Transform\myTransform.btproj]
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets(29,5):错误 MSB4018:在 Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [C:\Users\User01\Documents\visual studio 2015\Projects\SampleProject\Transform\myTransform.btproj]
我正在运行的 MSBuild 命令是:
C:\Program Files (x86)\MSBuild\14.0\Bin> ./MSBuild.exe $pathToProjectSln /p:VisualStudioVersion=14.0 /target:Build /target:Clean
MapperCompiler 在以下文件中定义:
C:\Program Files (x86)\MSBuild\Microsoft\Azure 集成 SDK\IntegrationCommon.targets
作为
<Target Name="GenerateXslt">
<MapperCompiler MapItems="@(Map)"
SchemaItems="@(Schema)"
ProjectReferences="@(ReferencePath)"
WarningLevel="$(WarningLevel)"
RootNamespace="$(RootNamespace)"
EnableUnitTesting="false"
OutputDir ="$(OutputPath)"
>
</MapperCompiler>
</Target>
看起来 SDK DLL 没有被拾取。这些存储在 GAC 中,但没有被 VS 解决方案中的项目显式引用。即使我将它们作为依赖项添加到每个单独的项目中,我仍然会遇到相同的错误。
非常感谢您的帮助 - 谢谢!
【问题讨论】:
-
您可以尝试不使用
Microsoft Azure Logic Apps Enterprise Integration Tools创建一个空的wiztalk项目,然后使用MSBuild测试是MSBuild的错误还是Microsoft Azure Logic Apps Enterprise Integration Tools的错误,随时告诉我们。 -
@PerryQian-MSFT 谢谢佩里。我没有尝试过空白的 BizTalk 项目,但和你一样,我强烈怀疑问题出在
Microsoft Azure Integration Tools上。如果我在.btproj文件中注释掉<Import Project="$(MSBuildExtensionsPath)\Microsoft\Azure Integration SDK\IntegrationTasks.targets" />'行,我会克服这个错误,但会遇到另一个错误:C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(2482,7): error MSB4057: The target "CreateManifestResourceNames" does not exist in the project.
标签: visual-studio-2015 msbuild biztalk azure-sdk biztalk-mapper