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是您的插件程序集的名称