【问题标题】:How can I store System.Data.SQLite.dll in subfolder?如何将 System.Data.SQLite.dll 存储在子文件夹中?
【发布时间】:2011-09-04 14:42:41
【问题描述】:

我正在使用 Visual Studio 创建使用 SQLite 数据库的 C# 应用程序。 我想要做的是将 DLL 文件保存在名为“config”的子文件夹中。我在 bin/debug 文件夹中创建了 config 文件夹,并将 System.Data.SQLite.dll 文件复制到其中。 然后我使用 bin/debug/config/Systtem.Data.SQLite.dll 文件添加了对我的解决方案的引用。 问题是,每次我构建解决方案时,VS 都会直接在 bin/debug 中创建新的 System.Data.SQLite.dll 文件,并且当我尝试使用我的应用程序时(在删除 bin/debug/System.Data.SQLite.dll 之后)它会抛出一个例外=它无法从配置文件夹中加载 dll ...... 我该如何解决?

【问题讨论】:

标签: visual-studio dll reference bin


【解决方案1】:

您应该使用从 EXE 目录加载的默认行为。

如果您真的不想这样做,请将引用上的 Copy Local 设置为 false 并通过调用 Assembly.Load 自己加载 DLL。
请注意,您需要在调用任何使用其类型的方法之前加载 DLL,以便在运行时 JIT 方法时已经加载了 DLL。

【讨论】:

  • 将它与AppDomain.AssemblyResolve 结合使用可能是个好主意。这样,它只按需加载,并且正在发生的事情的意图更加清晰。
【解决方案2】:

以下是有关该主题的更多信息:http://msdn.microsoft.com/en-us/library/4191fzwb.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多