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

.NET5升级至6后NSB ScriptBuilderTask无法解析自有NuGet包程序集

问题:构建使用HC.Framework NuGet包的解决方案时出现NSB SqlPersistenceTask异常

问题背景

我们采用微服务架构,通过名为HC.Framework的NuGet包在各服务间共享代码。当前正在从.NET5升级至.NET6,构建使用该NuGet包(包含所有NSB相关配置)的解决方案时,出现如下异常。

错误日志

1>MSBUILD : error : SqlPersistenceTask: An unhandled exception occurred:
1>MSBUILD : error : Exception:
1>MSBUILD : error : Failed to resolve assembly: 'HC.Framework, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
1>MSBUILD : error : StackTrace:
1>MSBUILD : error :    at Mono.Cecil.BaseAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters)
1>MSBUILD : error :    at Mono.Cecil.DefaultAssemblyResolver.Resolve(AssemblyNameReference name)
1>MSBUILD : error :    at Mono.Cecil.MetadataResolver.Resolve(TypeReference type)
1>MSBUILD : error :    at Mono.Cecil.TypeReference.Resolve()
1>MSBUILD : error :    at CecilExtensions.FindInTypeHierarchy[T](TypeDefinition type, Func`2 search)
1>MSBUILD : error :    at SagaDefinitionReader.TryGetCoreSagaDefinition(TypeDefinition type, SagaDefinition& definition)
1>MSBUILD : error :    at AllSagaDefinitionReader.GetSagas(Action`2 logger)
1>MSBUILD : error :    at SagaWriter.WriteScripts(BuildSqlDialect dialect)
1>MSBUILD : error :    at ScriptGenerator.Generate()
1>MSBUILD : error :    at InnerTask.Execute()
1>MSBUILD : error :    at NServiceBus.Persistence.Sql.SqlPersistenceScriptBuilderTask.Execute()
1>MSBUILD : error : Source:
1>MSBUILD : error : NServiceBus.Persistence.Sql.ScriptBuilderTask
1>MSBUILD : error :

Saga类代码片段

using System.Threading.Tasks;
using NServiceBus;
using HC.Swatson.Processor.Saga.Command;
using HC.Framework.NSB;
using HC.Swatson.Application.Command;
using HC.Integration.ReplyMessages.Sendgrid;

namespace HC.Swatson.Processor.Saga
{
    public class SendWrongPredictionEmailSD : BaseSagaData<SendWrongPredictionEmailCMD>
    {
        public SendWrongPredictionEmailSD() : base(totalSteps: 2) { }
    }

    public class SendWrongPredictionEmailSAGA :
        Saga<SendWrongPredictionEmailSD>,
        IAmStartedByMessages<SendWrongPredictionEmailCMD>,
        IHandleMessages<ReplyMessage<SendWrongPredictionEmail2CMD>>,
        IHandleMessages<EmailHasBeenSentRM>
    {
...
}

HC.Framework包中的NSB配置

[assembly: SqlPersistenceSettings(
    MsSqlServerScripts = true,
    MySqlScripts = false,
    OracleScripts = false,
    PostgreSqlScripts = false,
    ProduceOutboxScripts = true,
    ProduceSagaScripts = true,
    ProduceSubscriptionScripts = true,
    ProduceTimeoutScripts = true
    )]

补充排查信息

  • 手动使用dotnet工具生成脚本可正常运行,推测这是NSB的问题,已向其提交工单。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:50:31