引用程序集或 dll 是不是应该复制到部署目录中?
Posted
技术标签:
【中文标题】引用程序集或 dll 是不是应该复制到部署目录中?【英文标题】:Referencing assemblies or dll should be copied in deployment directory or not?引用程序集或 dll 是否应该复制到部署目录中? 【发布时间】:2020-11-29 18:11:29 【问题描述】:我使用 .Net Framework 4.8 在 Win10 上为我的蓝牙 LE 应用程序编写了一个 C# 类 DLL,但它似乎没有像我预期的那样工作。 在我编写 DLL 的开发 PC(Win10 也是如此)上,该应用程序运行良好,但是当我在另一台 PC 上安装我的应用程序时,它就不行了。 我的问题是:我是否也必须复制用于编写 DLL 的依赖项?或者我必须做什么才能让魔法发挥作用?
我正在使用的库:
using SDKTemplate;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using Windows.Devices.Bluetooth;
using Windows.Devices.Bluetooth.GenericAttributeProfile;
using Windows.Devices.Enumeration;
using Windows.Storage.Streams;
using System.Threading.Tasks;
using System.Runtime.Remoting.Messaging;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using Nito.AsyncEx.Synchronous;
【问题讨论】:
它不起作用是什么意思? 是的,您需要可访问的依赖项(很可能已复制到部署目录)。 如果您要引用任何依赖的 dll,则应将其复制到部署目录中。 一个 dll 肯定是一些 external 功能,不在您当前的功能中。那么,如果不是通过在目标计算机上共享程序集,您还希望如何引用该功能? 好的,感谢您非常快速的答复!我是 DLL 编程新手,你能告诉我部署目录在哪里,我必须在目标系统上复制什么吗? 【参考方案1】:您的应用必须能够加载所有依赖项,因为它们不属于您的 DLL。这包括 .NET Framework 4 8,它不是 Windows 10 的标准部分,必须单独安装/与您的应用以及任何第三方库和包一起安装。
编辑: .NET Framework 4.8 是 Windows 10 May 2019 更新(版本 1903)的一部分;如果您的目标计算机至少是该版本,则将bin\Release
文件夹(或bin\Debug
,如果您在调试配置中构建)的内容复制到目标计算机就足够了。
【讨论】:
以上是关于引用程序集或 dll 是不是应该复制到部署目录中?的主要内容,如果未能解决你的问题,请参考以下文章
无法解析程序集或Windows元数据文件'System.Data.dll'