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

构建控制台应用时部分Serilog相关DLL未生成的问题求助

解决Serilog扩展DLL无法在控制台应用生成及程序集冲突问题

1. 调整日志类库的NuGet依赖传递设置

确保Serilog.Enrichers.Process、Serilog.Enrichers.Thread这类包在日志类库中是直接引用,且允许依赖传递到下游项目:

  • 编辑日志类库的.csproj文件,修改对应包的引用配置:
    <PackageReference Include="Serilog.Enrichers.Process" Version="你的版本号">
      <PrivateAssets>none</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Serilog.Enrichers.Thread" Version="你的版本号">
      <PrivateAssets>none</PrivateAssets>
    </PackageReference>
    
  • 避免使用<PrivateAssets>all</PrivateAssets>,该配置会阻止依赖包传递给引用此类库的控制台应用。

2. 替换DLL引用为项目引用

如果之前是手动拷贝日志类库的DLL到控制台应用,改为项目引用:

  • 编辑控制台应用的.csproj文件,添加项目引用:
    <ProjectReference Include="..\你的日志类库名称\你的日志类库名称.csproj" />
    

项目引用会自动处理依赖传递,无需手动复制DLL。

3. 解决程序集引用冲突

若直接给控制台应用加NuGet包出现冲突,按以下方式处理:

  • .NET Framework项目:在控制台应用的App.config中添加程序集绑定重定向,统一Serilog相关包的版本:
    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-最新版本号" newVersion="最新版本号" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Serilog.Enrichers.Process" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-最新版本号" newVersion="最新版本号" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
  • .NET Core/.NET 5+项目:在控制台应用的.csproj中开启自动绑定重定向:
    <PropertyGroup>
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
    </PropertyGroup>
    
  • 核心原则:确保日志类库和控制台应用中所有Serilog相关包的版本完全一致,从根源避免版本冲突。

4. 排查构建输出

  • 在Visual Studio中,查看控制台应用的「依赖项 -> NuGet」列表,确认Serilog.Enrichers.Process等包是否存在,若不存在则回到第一步检查依赖传递设置。
  • 查看控制台应用的构建输出日志(输出窗口 -> 选择「生成」),搜索目标DLL名称,根据日志提示排查是否有依赖被排除或未找到的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:52:22