【问题标题】:How to use third-party DLL without installing it如何在不安装的情况下使用第三方DLL
【发布时间】:2015-09-24 09:46:36
【问题描述】:

我正在 Visual Studio 中开发一个软件。我需要使用 AutoIt DLL,但它只允许我在安装 AutoIt 软件时使用这些。如何在不安装软件的情况下在我的程序中使用 DLL?

【问题讨论】:

  • 你是什么意思“它只允许我当......”,它没有安装时它会做什么?
  • 可能需要通过regsvr注册的dll甚至dll的一些依赖项
  • @Spawn 我相信regsvr可以通过代码调用
  • 谁知道“AutoIt”在安装时会做什么 - 它可以将文件和注册表设置放在任何功能工作所需的各种位置。一些 DLL 是自包含的,您可以直接使用,而另一些 DLL 背后有很大的依赖链。当您尝试在未正确安装的情况下使用它时遇到了什么样的问题?
  • 什么是 DLL?COM DLL?程序集 .DLL?您是否允许在不安装软件的情况下使用 DLL?

标签: c# .net visual-studio gac


【解决方案1】:

奇怪的是,这个问题没有得到回答。 AutoIt 既是一个独立的自动化应用程序,又是一个可以导入 VS 项目的程序集。

我在 VS 和 C# 中使用 AutoIt,因为我使用 Selenium 测试的站点没有直接的 http 身份验证。使用 AutoIt,我可以在浏览器中访问登录提示。

下载包含以下文件的 zip 文件:

AutoItX3.Assembly.dll
AutoItX3.dll
AutoItX3_x64.dll

(我目前没有使用 _x64 dll,但无论如何我已经包含了它。)

在 VS 项目中

  • 添加对 AutoItX3.Assembly.dll 的程序集引用
  • 添加现有项目:AutoItX3.dll(或 AutoItX3_x64.dll,如果您想使用它)(在属性中将其设置为“如果较新则复制”)
  • 在类中添加以下 using 指令:using AutoIt;

在我的示例中,我使用以下代码访问登录提示:

AutoIt.AutoItX.WinActivate("Authentication Required");
AutoIt.AutoItX.Send("User");
AutoIt.AutoItX.Send("{TAB}");
AutoIt.AutoItX.Send("Password");
AutoIt.AutoItX.Send("{ENTER}");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-27
    • 2021-09-29
    • 2017-06-27
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2016-05-01
    • 2012-11-30
    相关资源
    最近更新 更多