gpt4 book ai didi

c# - 安装到 GAC 的 DLL 的路径

转载 作者:IT王子 更新时间:2023-10-29 04:24:36 24 4
gpt4 key购买 nike

如何获取已(可能)在 GAC 中注册的 DLL 的(物理)安装路径?此 DLL 是一个控件,可以托管在 .Net 应用程序以外的其他事物中(包括 VS 以外的 IDE...)。

当我使用 System.Reflection.Assembly.GetExecutingAssembly().Location 时,它给出了 winnt\system32 中 GAC 文件夹的路径 - 或者在 VS 的设计模式下给出了 VS IDE 的路径。

我需要获取实际安装物理 dll 的路径 - 或者 VS 的 bin/debug 或(release)文件夹。

原因是我需要在此文件夹中获取一个 XML 文件,其中包含在设计模式和运行时都使用的配置设置。

或者如何最好地处理这种情况?我有一个可疑的网络位置,我目前正在用于设计模式......(不要认为 ApplicationData 文件夹会削减它(但有 .Net 版本,因为它是通过 ClickOnce 安装的,可以使用 Clickonce 数据文件夹))

最佳答案

如果将某些内容放入 GAC,它实际上会被复制到 %WINDIR%\assembly 下的某个位置,例如

C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll

我假设当您检查安装在 GAC 中的相关程序集的位置时,您会看到类似的情况。这其实是对的。 (在 .NET 1.1 中,当您查看 GAC 程序集的属性时,会列出一个“代码库”,但这只是为了向您显示运行 gacutil 时原始文件所在的位置——它实际上并不表示将加载什么。 ) 你可以阅读 more about that here .

长话短说,你可能无法做你想做的事。您可能希望将行为切换为相对于主应用程序程序集 (Assembly.GetEntryAssembly() ) 或将文件放在某个众所周知的位置,可能基于设置的环境变量。

关于c# - 安装到 GAC 的 DLL 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/377551/

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