.NET 6.0控制台应用发布需包含哪些关联DLL及部署方案咨询
.NET 6.0控制台应用部署缺失DLL问题解决
问题背景
我在Visual Studio中开发了一个.NET 6.0控制台应用,用Batch Build编译完成后,只将可执行文件单独放在文件夹里,本地通过Windows 10任务计划程序运行正常。但公司IT要在服务器上部署运行,我导出了任务计划的XML配置文件,只共享了EXE和XML文件,结果IT反馈命令行运行时提示缺失DLL文件。
想明确:发布该应用需要包含哪些关联DLL?Release目录里大量DLL哪些需要移到部署文件夹?有没有更简便的解决办法?
以下是Release目录的文件列表:
Volume in drive C is OS Volume Serial Number is C292-BE2E Directory of C:\source\repos\SharePointListCreation\bin\Release\net6.0 09/26/2024 09:29 AM <DIR> . 09/26/2024 09:29 AM <DIR> .. 01/15/2023 05:45 PM 406,528 AngleSharp.Css.dll 05/31/2022 01:44 PM 882,176 AngleSharp.dll 07/26/2021 06:36 PM 378,744 Microsoft.ApplicationInsights.dll 11/12/2018 12:30 PM 22,904 Microsoft.AspNetCore.Hosting.Abstractions.dll 11/12/2018 12:30 PM 15,224 Microsoft.AspNetCore.Hosting.Server.Abstractions.dll 11/12/2018 12:29 PM 76,152 Microsoft.AspNetCore.Http.Abstractions.dll 11/12/2018 12:29 PM 38,776 Microsoft.AspNetCore.Http.Extensions.dll 11/12/2018 12:28 PM 32,120 Microsoft.AspNetCore.Http.Features.dll 11/12/2018 12:37 PM 70,520 Microsoft.AspNetCore.StaticFiles.dll 10/22/2021 06:47 PM 27,264 Microsoft.Extensions.Caching.Abstractions.dll 01/14/2022 02:54 PM 38,504 Microsoft.Extensions.Caching.Memory.dll 10/22/2021 06:47 PM 25,216 Microsoft.Extensions.Configuration.Abstractions.dll 10/22/2021 06:48 PM 43,632 Microsoft.Extensions.DependencyInjection.Abstractions.dll 09/26/2022 12:42 PM 82,560 Microsoft.Extensions.DependencyInjection.dll 11/10/2018 07:26 PM 17,976 Microsoft.Extensions.FileProviders.Abstractions.dll 11/12/2018 12:30 PM 22,904 Microsoft.Extensions.Hosting.Abstractions.dll 10/22/2021 06:50 PM 68,736 Microsoft.Extensions.Http.dll 10/22/2021 06:51 PM 62,064 Microsoft.Extensions.Logging.Abstractions.dll 10/22/2021 06:50 PM 44,656 Microsoft.Extensions.Logging.dll 10/22/2021 06:50 PM 59,008 Microsoft.Extensions.Options.dll 10/22/2021 06:51 PM 40,048 Microsoft.Extensions.Primitives.dll 11/12/2018 12:28 PM 19,832 Microsoft.Extensions.WebEncoders.dll 03/25/2021 06:18 PM 142,224 Microsoft.Graph.Core.dll 05/20/2021 05:05 PM 8,584,592 Microsoft.Graph.dll 06/06/2024 05:09 PM 1,005,600 Microsoft.Identity.Client.dll 06/06/2024 05:14 PM 66,592 Microsoft.Identity.Client.Extensions.Msal.dll 08/21/2024 11:16 PM 20,000 Microsoft.IdentityModel.Abstractions.dll 08/21/2024 11:16 PM 155,160 Microsoft.IdentityModel.JsonWebTokens.dll 08/21/2024 11:16 PM 36,896 Microsoft.IdentityModel.Logging.dll 08/21/2024 11:16 PM 337,432 Microsoft.IdentityModel.Tokens.dll 11/12/2018 12:28 PM 74,616 Microsoft.Net.Http.Headers.dll 08/20/2024 02:34 PM 101,056 Microsoft.Office.Client.Policy.dll 08/20/2024 02:34 PM 41,720 Microsoft.Office.Client.TranslationServices.dll 08/20/2024 02:34 PM 108,120 Microsoft.Office.SharePoint.Tools.dll 08/20/2024 02:34 PM 528,520 Microsoft.Online.SharePoint.Client.Tenant.dll 08/20/2024 02:34 PM 416,536 Microsoft.ProjectServer.Client.dll 08/20/2024 02:34 PM 1,493,144 Microsoft.SharePoint.Client.dll 08/20/2024 02:34 PM 50,920 Microsoft.SharePoint.Client.DocumentManagement.dll 08/20/2024 02:34 PM 168,680 Microsoft.SharePoint.Client.Publishing.dll 08/20/2024 02:34 PM 200,888 Microsoft.SharePoint.Client.Runtime.dll 08/20/2024 02:34 PM 30,408 Microsoft.SharePoint.Client.Search.Applications.dll 08/20/2024 02:34 PM 138,816 Microsoft.SharePoint.Client.Search.dll 08/20/2024 02:34 PM 92,432 Microsoft.SharePoint.Client.Taxonomy.dll 08/20/2024 02:34 PM 181,968 Microsoft.SharePoint.Client.UserProfiles.dll 08/20/2024 02:34 PM 54,416 Microsoft.SharePoint.Client.WorkflowServices.dll 10/22/2021 06:40 PM 26,224 Microsoft.Win32.SystemEvents.dll 03/17/2021 03:03 PM 695,336 Newtonsoft.Json.dll 09/26/2024 09:29 AM 0 output.txt 08/16/2024 06:24 AM 2,518,448 PnP.Core.dll 08/16/2024 06:41 AM 11,162,672 PnP.Framework.dll 10/29/2020 06:07 AM 259,072 Portable.Xaml.dll 09/24/2024 11:26 AM <DIR> runtimes 09/25/2024 08:14 PM 96,506 SharePointListCreation.deps.json 09/25/2024 08:14 PM 81,920 SharePointListCreation.dll 09/25/2024 08:14 PM 151,040 SharePointListCreation.exe 09/25/2024 08:14 PM 35,328 SharePointListCreation.pdb 09/25/2024 08:14 PM 253 SharePointListCreation.runtimeconfig.json 08/19/2022 02:58 PM 396,424 System.Configuration.ConfigurationManager.dll 02/15/2023 07:32 PM 145,072 System.Diagnostics.DiagnosticSource.dll 10/22/2021 06:51 PM 130,664 System.DirectoryServices.dll 10/22/2021 06:49 PM 175,216 System.Drawing.Common.dll 08/21/2024 11:16 PM 90,168 System.IdentityModel.Tokens.Jwt.dll 10/22/2021 06:49 PM 122,480 System.IO.Packaging.dll 10/22/2021 06:51 PM 20,592 System.Security.Cryptography.ProtectedData.dll 10/22/2021 06:49 PM 104,048 System.Security.Permissions.dll 10/23/2022 12:54 PM 457,856 System.Text.Json.dll 10/22/2021 06:49 PM 25,712 System.Windows.Extensions.dll 02/12/2023 03:28 PM 33,792 TimeZoneConverter.dll 67 File(s) 33,235,103 bytes 3 Dir(s) 702,420,926,464 bytes free
解决办法
1. 直接复制Release目录核心文件(快速但易遗漏)
- 必须包含的基础文件:
SharePointListCreation.exe、SharePointListCreation.dll、SharePointListCreation.deps.json、SharePointListCreation.runtimeconfig.json - 所有第三方依赖DLL:从列表看,包括
AngleSharp*.dll、Microsoft.Graph*.dll、PnP*.dll、Newtonsoft.Json.dll、TimeZoneConverter.dll,以及所有SharePoint相关的Microsoft.SharePoint.Client*.dll、身份验证相关的Microsoft.Identity*.dll - 必须带上
runtimes目录:里面是特定平台的原生依赖,服务器运行可能需要 - 可选排除:
SharePointListCreation.pdb是调试符号文件,不需要调试可以不用复制;output.txt是本地生成的日志文件,无需携带
2. 使用Visual Studio发布功能(推荐,最可靠)
这是官方推荐的部署方式,自动处理所有依赖:
- 右键项目 → 选择「发布」
- 目标选择「文件夹」,点击下一步
- 发布模式选择「框架依赖」或「独立部署」:
- 框架依赖:服务器需预先安装.NET 6.0 Runtime,发布包体积小,仅包含你的代码和第三方依赖
- 独立部署:无需服务器安装.NET Runtime,发布包包含完整的.NET运行时,体积大但无需依赖环境
- 点击「发布」后,生成的文件夹里就是所有需要部署的文件,直接复制到服务器即可
3. 手动排查缺失DLL(适合简单项目)
如果不想复制所有文件,可让IT运行程序时记录缺失的DLL名称,再从Release目录对应复制:
- 比如提示缺失
Microsoft.Graph.dll,就复制该DLL及其依赖的Microsoft.Graph.Core.dll - 注意:这种方式容易遗漏深层依赖,复杂项目不建议使用
内容的提问来源于stack exchange,提问作者xarzu
相关产品推荐
相关产品推荐

