Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Excel加载项未加载包含服务引用配置信息的app.config_C#_Web Services_Excel Dna - Fatal编程技术网

C# Excel加载项未加载包含服务引用配置信息的app.config

C# Excel加载项未加载包含服务引用配置信息的app.config,c#,web-services,excel-dna,C#,Web Services,Excel Dna,我已经编写了一个带有服务引用的应用程序,可以对特定URL进行web服务调用,效果非常好。我想将此代码移动到Excel加载项中,但遇到以下问题: 未处理的异常消息:在ServiceModel客户端配置节中找不到名为“ConnectionyHttpSoap12Endpoint”和约定为“Connectivity.ConnectivityPortType”的终结点元素。这可能是因为找不到应用程序的配置文件,或者在客户端元素中找不到与此名称匹配的端点元素 问题是,由于Excel正在调用我的类库,因此未加

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

未处理的异常消息:在ServiceModel客户端配置节中找不到名为“ConnectionyHttpSoap12Endpoint”和约定为“Connectivity.ConnectivityPortType”的终结点元素。这可能是因为找不到应用程序的配置文件,或者在客户端元素中找不到与此名称匹配的端点元素


问题是,由于Excel正在调用我的类库,因此未加载带有服务引用信息的my app.config,而调用应用程序的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);
}

我最近也遇到了同样的问题,发现最好的解决方案包括:

将配置文件指向:

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

其中AssemblyName是@hexboy在其评论中指出的加载项程序集的名称,答案是ExcelDNA要求配置文件与xll文件同名,但扩展名为.config。然后ExcelDNA将自动加载配置,不需要进一步的代码

还要注意,ExcelDNA在构建时会生成各种不同的文件。例如,addin.xll、addin-packed.xll、addin64.xll、addin64-packed.xll,其中项目部件名为addin


为了获取配置文件,它需要与外接程序使用的文件名匹配。例如,如果使用addin-packed.xll作为注册的Excel加载项,则为addin-packed.xll.config。

我自己解决了这个问题。问题是Excel DNA需要配置文件为.xll.config,我使用了Visual Studio创建的默认.dll.config。问题是,我在谷歌上搜索了上述错误,而不是直接去Excel DNA网站查看论坛。不管怎样,现在一切都好了。