app.config引用源代码路径而不是dll路径

时间:2015-05-06 12:41:10

标签: c# app-config

我正在为excel开发一个加载项

在excel中,我添加了对创建的dll文件的引用并使用了

中的函数

例如

.tlb

这里我添加了对alt+f11文件的引用 即在Excel中我按.tlb转到宏,我点击了工具,点击了引用并通过浏览到文件的路径添加了C:/Program Files/Project/Bin/Debug 文件

此文件的位置是

app.config

在代码中,获取System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase 我使用过的路径

D:/ProjectName/Bin/Debug

获取dll的位置,即C:/Program Files/Project/

在此之后,我使用installshield创建安装程序并安装它

现在,dll的位置为C:/Program Files/Project/

这里有app.config,dll.config等

安装后,我更改了dll的引用

,即我在D:/ProjectName/Bin/Debug中选择了.tlb文件,而不是C:/Program Files/ProjectName中的.tlb文件。但它仍然从Bin / Debug !!中的app.config获取配置值

如何在dll的文件夹中获取app.config中的值?

简而言之 我想要在excel宏中引用的dll / tlb文件的路径,即D:/project/bin/debug 但它正在使用源代码路径中存在的app.config,即<button id="submitbutton" class="btn btn-primary pull-right">Submit</button>

1 个答案:

答案 0 :(得分:1)

GetExecutingAssembly()返回当前正在执行的程序集(例如 .exe )。

假设您在DLL中定义了类型 Class1 ,那么您可以使用它来查找库的路径。

string s = System.Reflection.Assembly.GetAssembly(typeof (Class1)).CodeBase;