【问题标题】:Where should I place unmanaged .dlls in a .NET project using VS2008?我应该将非托管 .dll 放在使用 VS2008 的 .NET 项目中的什么位置?
【发布时间】:2010-01-30 01:00:52
【问题描述】:

到目前为止,我一直将 dll 放入 /bin 文件夹,因为它似乎是调用 DllImport'd 函数时加载的唯一位置,但感觉不对,因为它是输出文件夹,它可能会在“项目清理”或“全部重建”操作后被擦除。

我应该怎么做?提前致谢。

注意:我无法将 .dll 嵌入到 .exe 中,因为作者明确希望 dll 从外部可见。

【问题讨论】:

    标签: .net visual-studio dll unmanaged


    【解决方案1】:

    试试这个:

    • 在您的项目中创建一个文件夹
    • 将非托管程序集放在其中
    • 在“属性”选项卡中将 "Copy to Output Directory" 更改为 "Copy If Newer"

    【讨论】:

    • 好的。但是不要创建新文件夹,应用程序仍然无法找到 DLL。并使用 Copy If Newer,应用程序不会更改 DLL。
    • 我建议创建该文件夹以分隔该文件;它会在输出目录上创建相同的文件夹吗?
    【解决方案2】:

    使用 VS 在您的项目中创建一个名为 Lib 的新文件夹。将您的 DLL 复制到那里并从那里引用它们。

    【讨论】:

    • 引用仅适用于托管 DLL(或 COM DLL,但在这种情况下,引用实际上是对 tlbimp/aximp-ed 托管包装器的引用,并且不会复制 COM DLL(因为它被假定为注册))。
    • 如果我在 DllImport("Lib/xxx.dll") 中明确引用 DLL 路径,它会起作用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多