You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BizTalk 2020运行Native格式测试时提示找不到Microsoft.BizTalk.TOM.resources

解决BizTalk映射单元测试中Microsoft.BizTalk.TOM.resources找不到的问题

问题场景

已安装带最新CU的BizTalk Server 2020,服务器搭配Visual Studio 2019,BizTalk解决方案构建正常,但运行Native(非XML)格式输入文件的映射单元测试时,抛出以下错误:

Message:
Test method LGSS.Unit4.APInvoices.Testing.Unit.Transforms.AP_10BOut_2_CanonoicalABWTransaction.Map_AP_10BOut_2_CanonicalABWTransaction threw exception:
System.IO.FileNotFoundException: Could not find file 'Microsoft.BizTalk.TOM.resources'.

Stack Trace:
RuntimeAssembly.InternalGetSatelliteAssembly(String name, CultureInfo culture, Version version, Boolean throwOnFileNotFound, StackCrawlMark& stackMark)
ManifestBasedResourceGroveler.GetSatelliteAssembly(CultureInfo lookForCulture, StackCrawlMark& stackMark)
ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark)
ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)
ResourceManager.GetString(String name, CultureInfo culture)
CXSDSchemaTree.GetResourceString(String strResource)
BTSMethods.IsStandardXML(Object SchemaObject)
CXSDSchemaTree.ValidateInstance(String strInstanceFilePath, OutputInstanceType inputType, String schemaClassName, ITOMErrorInfo[]& errValidationErrors, String& strXMLOutput)
TestMapHelper.ValidateNativeInputInstance(String inputInstanceFilename, String sourceSchemaClassName, String inputFilename, ITOMTree TOMTreeSrc)
TestableMapBase.TestMap(String inputInstanceFilename, InputInstanceType inputType, String outputInstanceFilename, OutputInstanceType outputType)

测试代码示例:

[TestMethod]
[DeploymentItem(@"Transforms\NCC\InputFiles\AP_10BOut_2_CanonicalABWTransaction_input_1.txt")]
[DeploymentItem(@"Transforms\NCC\ExpectedOutput\AP_10BOut_2_CanonicalABWTransaction_ExpectedOutput_1.xml")]
public void Map_AP_10BOut_2_CanonicalABWTransaction()
{
    string inputFile = "AP_10BOut_2_CanonicalABWTransaction_input_1.txt";
    string outputFile = "actualOutput.xml";

    InputInstanceType inputType = InputInstanceType.Native;
    OutputInstanceType outputType = OutputInstanceType.XML;

    TestableMapBase tmb = new LGSS.Unit4.APInvoices.Transforms.Canonical.NCC.AP_10BOut_2_CanonicalABWTransaction();

    tmb.TestMap(inputFile, inputType, outputFile, outputType);
    Assert.IsTrue(File.Exists(outputFile), "Failed to generate output file..");

    ////Create Xpaths for elements to be overwritten prior to compare
    List<XPathModification> xpaths = GetElementsToIgnore();
    XmlMapperHelper.CompareMapOutputXmlMatchesExpectedXml(outputFile, "AP_10BOut_2_CanonicalABWTransaction_ExpectedOutput_1.xml", xpaths, _testContext);
}

本地VS2019和DevOps管道(同一服务器代理)运行均报错,且Microsoft.BizTalk.TOM.dll已存在于GAC路径C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.BizTalk.TOM\v4.0_3.0.1.0__31bf3856ad364e35\Microsoft.BizTalk.TOM.dll。

解决方法

  • 检查并部署卫星资源集到GAC
    确认对应文化的Microsoft.BizTalk.TOM.resources.dll存在于GAC的文化子目录中,例如英文环境需存在路径:
    C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.BizTalk.TOM.resources\v4.0_3.0.1.0__31bf3856ad364e35\en\Microsoft.BizTalk.TOM.resources.dll
    若缺失,从BizTalk安装介质或最新CU补丁包中提取对应资源文件,使用以下命令注册到GAC:

    gacutil /i Microsoft.BizTalk.TOM.resources.dll
    
  • 强制测试进程使用固定文化
    在测试初始化方法中设置线程文化为不变文化,避免资源管理器尝试加载非默认文化的资源:

    [TestInitialize]
    public void TestInitialize()
    {
        System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
        System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.InvariantCulture;
    }
    
  • 验证测试项目的BizTalk引用配置
    右键测试项目中的Microsoft.BizTalk.TOM引用→属性,将复制本地设置为False,确保运行时从GAC加载组件,而非本地副本。

  • 修复BizTalk Server安装
    运行BizTalk Server 2020的修复安装程序,选择修复所有相关组件,确保资源文件被完整部署;之后重新应用最新CU补丁,补丁安装过程会修复缺失的资源文件。

  • 检查DevOps代理账户权限
    确保DevOps构建代理运行的账户属于BizTalk Server Administrators组,或拥有访问GAC目录、BizTalk系统文件的足够权限,避免因权限不足导致资源文件无法加载。

内容的提问来源于stack exchange,提问作者Rob Bowman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:43:11