Excel加载项未加载带有服务引用配置信息的app.config

我已经编写了一个带有服务引用的应用程序,可以对特定的URL进行Web服务调用,效果很好。 我想将此代码移动到Excel加载项,但我遇到了这个问题:

未处理的exception消息:找不到名为“ConnectivityHttpsSoap12Endpoint”的端点元素,并在ServiceModel客户端配置部分中收缩“Connectivity.ConnectivityPortType”。 这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素。

问题是我的app.config(没有服务参考信息)没有被加载,因为Excel正在调用我的类库,并且调用应用程序的app.config需要添加服务引用。 但这可以用Excel完成吗? 更好的是,有没有办法从代码加载我的app.config?

您需要使用ConfigurationManager打开它。 您可以在调用程序集路径中找到您的app.config文件(通常),这样您就可以编写如下方法:

 public static Configuration LoadLocalConfigurationFile(string fileName) { // fileName is the configuration file you want to open var configMap = new ExeConfigurationFileMap { ExeConfigFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName) }; return ConfigurationManager.OpenMappedExeConfiguration( configMap, ConfigurationUserLevel.None); } 

我最近自己遇到了同样的问题,发现最好的解决方案包含在:

在运行时更改默认app.config

将配置文件指向:

 AppDomain.CurrentDomain.BaseDirectory + "AssemblyName.dll.config" 

其中AssemblyName是您的插件程序集的名称