当前位置:  开发笔记 > 编程语言 > 正文

安装到GAC的DLL的(物理)(已安装)路径

如何解决《安装到GAC的DLL的(物理)(已安装)路径》经验,为你挑选了1个好方法。

如何获得(可能)在GAC中注册的DLL的(物理)安装路径?此DLL是一个控件,可以托管在.Net应用程序以外的东西中(包括除VS之外的IDE ...).

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

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

原因是我需要在此文件夹中获取一个XML文件,其配置设置既可以在设计模式下使用,也可以在运行时使用.

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



1> Travis Illig..:

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

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

我假设当你在GAC中安装有问题的程序集的位置时,你会看到类似的东西.这实际上是正确的.(在.NET 1.1中,当您查看GAC程序集的属性时,列出了"代码库",但这只是为了向您显示运行gacutil时原始文件所在的位置 - 它实际上并未指示要加载的内容.你可以在这里阅读更多相关信息.

长话短说,你可能无法做你想做的事.Assembly.GetExecutingAssembly()您可能希望将行为切换为相对于主应用程序程序集(Assembly.GetEntryAssembly())的行为,或者将文件放在某个众所周知的位置(可能基于获取的环境变量),而不是查看正在加载的程序集().组.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有