发布
社区首页 >问答首页 >设置互操作com对象的app.config文件的位置

设置互操作com对象的app.config文件的位置
EN

Stack Overflow用户
提问于 2013-07-09 12:00:58
回答 1查看 994关注 0票数 1

我正在用VS2010和VB.net (互操作)创建一个windows com对象。

此com对象应该能够与任何非托管代码应用程序一起工作,例如word、Excel或在本例中为Access。

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

但是,当我从app.config文件创建一个需要连接字符串或任何其他内容的com对象时,它就失败了。在这种情况下,它恰好是一个web服务,并且发生了常见的“端点”或app.config文件找不到错误。(如果它只是一个连接字符串,我会简单地读入这个值-但由于web服务定义,配置文件相当混乱)。

有些人建议将.dll和app.config放在与Excel.exe.config等办公程序相同的目录中,然后将配置文件重命名为.dll。

这似乎对我不起作用。

有没有办法让现在是com对象的vb.net类( .dll )加载并使用.dll的配置文件,而不是某个主应用程序文件?

请注意,在这种情况下,我没有主应用程序配置文件,因为我正在启动一个非托管应用程序,如word或Excel,并尝试使用我的类对象。

显然,在vb.net中,我可以将.dll中的配置文件内容复制到主应用程序配置中,然后我们就可以开始比赛了。我没有如前所述的托管“主”文件。

那么,当在非托管代码中创建对象的实例时,如何让class.dll文件加载class.dll.config文件?

EN

回答 1

Stack Overflow用户

发布于 2013-07-09 18:02:06

在类库中使用应用程序设置通常是一种糟糕的做法,.NET仅支持在EXE项目中使用这些设置。在EXE的情况下,这是脱离图表的,你完全不能控制哪个ComVisible使用你的代码。

这并不是说它不工作,在foo.exe客户机目录中放一份foo.exe.config的副本就可以了。当你不是唯一一个寻找这个解决方案的人时,麻烦就来了。现在安装程序开始覆盖彼此的.config文件,当插件无法诊断地失败时,您的客户会损失很大的时间。

这个问题只有一个解决方案:不要使用设置。为类库提供配置的其他方式有很多。在已知位置的.xml文件也可以很好地工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17539663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档