互操作COM对象app.config文件的设置位置(Set location of app.conf

2019-10-18 09:01发布

我创造了VS2010和VB.net(互操作)一个Windows COM对象

此COM对象应能正常工作与任何非托管代码应用程序,如Word,Excel或在这种情况下访问。

COM对象的创建和使用regasm等工作正常。 没问题。

然而,一瞬间,我创建需要连接字符串或从任何app.config文件,然后失败其他COM对象。 在这种情况下,它碰巧是一个Web服务和常见的“端点”或app.config文件找不到错误发生。 (如果它只是一个连接字符串,我只想读这个值 - 但配置文件相当混乱,由于Web服务定义)。

有一些暗示将.dll文件的和的app.config在同一目录中的办公程序,如Excel,然后重命名为Excel.exe.config应该工作的配置文件。

这似乎并没有对我的工作。

有有vb.net类文件(.dll)的手段,现在是一个COM对象知道加载+使用配置文件为.dll文件,而不是一些主要的应用程序文件?

注意,在这种情况下,我没有主应用程序配置文件,因为我喜欢推出Word或Excel非托管应用程序,并尝试使用我的类对象。

在vb.net很明显,我可以从该.dll到主应用程序配置复制配置文件的东西,我们是去比赛。 如指出我没有管理的“主”文件。

所以,我怎么当非托管代码中创建对象的实例的class.dll文件加载了class.dll.config文件?

Answer 1:

在类库使用应用程序设置为一般的不良做法,.NET仅支持他们为EXE项目。 这是关在[标记有ComVisible特性] DLL的情况下的图表中,你完全没控制哪些EXE使用你的代码。

它不象它不工作,把foo.exe.config的副本在foo.exe的客户端目录工作得很好。 当你是不是看起来该解决方案唯一的麻烦开始。 现在安装程序开始覆盖彼此的.config文件,你的客户失去了当加载项失败undiagnosably大的时间。

这里有一个解决这个问题:不要使用设置。 其他的方法很多可以提供的配置到类库。 在一个众所周知的位置的.xml文件,工作也很不错。



文章来源: Set location of app.config file for interop com object
标签: vb.net com