C# 将所需的 DLL 放在输出根目录以外的位置 [英] C# Putting the required DLLs somewhere other than the root of the output

查看:30
本文介绍了C# 将所需的 DLL 放在输出根目录以外的位置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在为一个项目使用 EmguCV,当我们的程序运行时,它需要一些 dll,例如cxcore.dll"等(或者它会引发运行时异常).目前,我将文件放在输出文件夹的根目录中(在 Visual Studio 的文件属性中选择始终复制").

I am using EmguCV for a project and when our program runs it needs some dlls like "cxcore.dll" etc. (or it throws runtime exceptions). At the moment, I put the files in the root of the output folder (selected "Copy Always" in the file's properties in Visual Studio).

但是看起来有点乱,那里有大约 10 个不同的 dll.有没有办法可以将它移动到输出文件夹中的子文件夹,它仍然会找到它.

However it looks a bit messy, to have about 10 different dlls just there. Is there someway where I can move it to a subfolder in the output folder and it'll still find it.

推荐答案

到目前为止的答案令人惊叹.不对;)好吧,

Amazing answers so far. None right ;) Well,

是的,您可以将程序集放在不同的位置.

yes, you can put the assemblies in separate locations.

在相应的应用程序配置(app.config 复制到 your.exe.config)中添加:

In the corresponding application config (app.config which gets copied to your.exe.config) add:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <probing privatePath="lib" />
    </assemblyBinding>
</runtime>

根据:

http://msdn.microsoft.com/en-us/library/823z9h8w.aspx

这将使程序查找程序集的私有路径(它自己的文件夹下的文件夹) - 就像 Web 应用程序查找/bin.

This will make the program look into the private path (folders under it's own folder) for assemblies - much like a web application looks for /bin.

您也可以将它们放入 GAC,但除非有其他原因,否则应避免这样做.

You can also put them into the GAC, but that should be avoided unless there are other reasons for this.

话虽如此,你真的不需要.如果您在开始菜单中正确安装应用程序,用户不会感到困惑;)我从来没有遇到过这个问题,包括具有 50 多个程序集的项目.用户根本看不到他们.

That being said, you really dont need to. Users wont get confused if you install the application properly in the start menu ;) I never had that problem, including projects with 50+ assemblies. Users simlpy never see them.

这篇关于C# 将所需的 DLL 放在输出根目录以外的位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆