我在c#中创建了一个用于访问Web服务的应用程序,如果安装在Program Files文件夹之外,它可以完美地工作。奇怪的是,当我在Program Files文件夹中安装它时,客户端无法读取[application] .dll.config中的配置并引发如下错误:
“无法在ServiceModel客户端配置部分找到默认端点元素引用合同[..]。这可能是因为没有为您的应用程序找到配置文件,或者因为找不到与此合同匹配的端点元素客户元素。“
我已阅读这篇文章,似乎并没有解决我的问题。 Could not find default endpoint element
我使用windows7顺便说一句,并没有测试过其他操作系统。
更新: 阅读上面的链接后,我试图将配置移动到machine.config并且它可以工作,但是如何让我的应用程序读取应用程序配置而不是machine.config?
答案 0 :(得分:12)
如果您使用的是VSTO 4 SP1,那么您可能会遇到此博客中描述的问题: http://msdnrss.thecoderblogs.com/2011/06/vsto-4-0-sp1-will-cause-a-vsto-addin-to-not-find-its-config-file/ 解决方案是从以下位置更改办公室插件的注册表值:
Manifest=”C:\Program Files\<Path>\WordAddIn.vsto|vstolocal”
为:
Manifest=”file:///C:\Program Files\<Path>\WordAddIn.vsto|vstolocal“
答案 1 :(得分:0)
计算机.config文件指定特定计算机的全局设置 - 因此,无论您更改了什么都可能会影响计算机上的每个其他应用程序。
App配置包含特定于应用程序的设置,因此您的应用程序设置确实应该在那里。
当您将应用程序构建并部署到Program Files时,应用程序配置是否随之复制?您是否设置了“复制到输出目录”属性?
答案 2 :(得分:0)
如果从应用程序app.exe调用library.dll,则需要有app.exe.config,而不是library.dll.config。