gpt4 book ai didi

c# - 如何将所有引用的 DLL 移动到 C# 中的单独文件夹中?

转载 作者:太空狗 更新时间:2023-10-30 00:09:17 25 4
gpt4 key购买 nike

我有一个包含 3 个项目的解决方案。其中 2 个项目引用了 log4net 和其他几个 DLL。

当我创建安装包并为每个项目添加项目输出时,它会将 DLL 放入主“应用程序文件夹”中。如果我将这些 DLL 拖到我在安装项目中创建的单独文件夹中,应用程序将不会运行并提示“找不到 log4net”。我希望这些 DLL 引用类似于“bin”或任何名称,而不是它们添加混淆的主文件夹 - 我只希望我的 2.exe 位于主文件夹中。

我尝试在每个项目中添加一个引用路径以指向“bin”文件夹。然后在安装项目中,我添加了一个名为“bin”的输出文件夹并将 DLL 移动到该文件夹​​中,但仍然不起作用。

我错过了什么!我花了几个小时环顾四周,试图找出我做错了什么,也许这是我出生的方式!感谢您的帮助!

最佳答案

您可以使用 <probing> element在 app.config 文件中为 Fusion(程序集加载器)指定一个私有(private)路径进行搜索。

这允许您指定作为应用程序目录子路径的路径,Fusion 在尝试查找要绑定(bind)的程序集时应搜索这些路径。一个示例(取自文档页面)是:

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;bin2\subbin;bin3"/>
</assemblyBinding>
</runtime>
</configuration>

这意味着 Fusion 将在尝试绑定(bind)程序集时在 bin、bin2\subbin(但不是 bin2、IIRC)和 bin3 子目录中搜索程序集。

关于c# - 如何将所有引用的 DLL 移动到 C# 中的单独文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1996358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com