【发布时间】:2015-07-16 14:35:58
【问题描述】:
我正在为 excel 开发一个插件
在 excel 中,我添加对创建的 dll 文件的引用并使用该文件中的函数
例子
Set o = CreateObject("DllName.PublishFile")
这里我添加了对.tlb 文件的引用
即在excel中我按下alt+f11转到宏,我点击工具,点击参考并通过浏览文件路径添加.tlb文件
这个文件的位置是
C:/Program Files/Project/Bin/Debug
在代码中,获取我使用过的app.config的路径
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
获取 dll 的位置,即D:/ProjectName/Bin/Debug
在此之后,我使用 installshield 创建安装程序并安装它
现在dll的位置是C:/Program Files/Project/
这里有 app.config、dll.config 等
安装后,我更改了dll的引用
即我选择了C:/Program Files/Project/ 中的.tlb 文件,而不是D:/ProjectName/Bin/Debug 中的.tlb 文件。但它仍然从 Bin/Debug 中的 app.config 获取配置值!!
如何在此处从 dll 文件夹中的 app.config 获取值?
简而言之
我想要我在 excel 宏中引用的 dll/tlb 文件的路径,即C:/Program Files/ProjectName
但它正在使用源代码路径中存在的 app.config,即D:/project/bin/debug
【问题讨论】:
-
移除 VBA 标签,Visual Basic for Applications 与 .NET 无关。
-
问题不清楚:你想要配置文件的路径(回答here)还是当前程序集的路径(在这种情况下你有问题中的代码)?
-
我想要我在 excel 中引用的 dll/tlb 文件的路径,即 C:/Program Files/ProjectName 但它正在使用源代码路径中存在的 app.config,即 D: /project/bin/debug
-
这还不清楚。你一直给目录名,就好像它们是路径名一样。然后你引用了 Excel(数据内容或 Excel 的自动化:也不清楚)。请记住,我们只知道您在问题中写的内容。
-
这样好多了。我怀疑每次构建时都在注册新构建,从而从 Excel 实例化该副本。我将首先检查注册表中的 COM 注册信息。
标签: c# app-config