gpt4 book ai didi

c# - 在 c# winforms 中动态取消引用一个 dll

转载 作者:太空狗 更新时间:2023-10-30 00:52:47 26 4
gpt4 key购买 nike

我有一个 winform c# 应用程序。

我可以使用 [web 方法] 检查我的客户端 winform 应该使用的 DLL 版本。我也可以下载。但是,如果我复制旧的 DLL,我将收到一条错误消息,指出该文件正在使用中。我已经预料到了这一点。

有没有办法从我正在运行的 winform 应用程序中卸载这个 DLL,复制 DLL 并重新加载它?

我不想为我的更新程序使用 Bootstrap ,它可能不得不停止并重新启动我的应用程序。

如果我可以卸载我的 DLL,所有这些都将过时。

我找了半天也没找到。在我退休之前,我想我会在这里发布问题。

谢谢

附言我可以发布显示如何在代码中加载 DLL 的代码以及由此产生的错误,但这是公开知识,不会添加到这个问题中。

最佳答案

Is there a way to unload this DLL from my running winform app, copy over the DLL and reload it?

在大多数情况下不是。在托管应用程序中卸载 DLL 的唯一方法是卸载整个 AppDomain。这通常意味着您需要非常小心地使用程序集(您不能像往常一样直接引用和使用它)。

I do not want to use a boot-strapper for my updater and it may come to having to stop and restart my application.

这是最常见的方法。在应用程序内部进行这项工作实质上是将 Bootstrap 构建到应用程序本身(在其自己的 AppDomain 中),并使用程序集卸载/重新启动 AppDomain。这通常需要更多工作,并且与单独的 Bootstrap 应用程序一样具有破坏性。

关于c# - 在 c# winforms 中动态取消引用一个 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913495/

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