我正在为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>
答案 0 :(得分:1)
GetExecutingAssembly()返回当前正在执行的程序集(例如 .exe )。
假设您在DLL中定义了类型 Class1 ,那么您可以使用它来查找库的路径。
string s = System.Reflection.Assembly.GetAssembly(typeof (Class1)).CodeBase;