【问题标题】: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 编程新手,你能告诉我部署目录在哪里,我必须在目标系统上复制什么吗?

标签: c# .net windows class dll


【解决方案1】:

您的应用必须能够加载所有依赖项,因为它们不属于您的 DLL。这包括 .NET Framework 4 8,它不是 Windows 10 的标准部分,必须单独安装/与您的应用以及任何第三方库和包一起安装。

编辑: .NET Framework 4.8 是 Windows 10 May 2019 更新(版本 1903)的一部分;如果您的目标计算机至少是该版本,则将bin\Release 文件夹(或bin\Debug,如果您在调试配置中构建)的内容复制到目标计算机就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    相关资源
    最近更新 更多