Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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# 为什么赢了';t在某些计算机上加载我的DLL.config文件_C#_App Config_Outlook Addin_System.diagnostics_Traceswitch - Fatal编程技术网

C# 为什么赢了';t在某些计算机上加载我的DLL.config文件

C# 为什么赢了';t在某些计算机上加载我的DLL.config文件,c#,app-config,outlook-addin,system.diagnostics,traceswitch,C#,App Config,Outlook Addin,System.diagnostics,Traceswitch,我有一个用C#编写的Outlook加载项,即MyAddin.dll,它有一个配置文件MyAddin.dll.config。两者都存储在同一目录中。它们放在那里,由安装程序安装。在大多数安装中,查找和读取配置文件没有问题。但是,在一些安装上(完全相同的版本、安装等),永远不会打开.config 配置文件内容如下所示 <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections&g

我有一个用C#编写的Outlook加载项,即MyAddin.dll,它有一个配置文件MyAddin.dll.config。两者都存储在同一目录中。它们放在那里,由安装程序安装。在大多数安装中,查找和读取配置文件没有问题。但是,在一些安装上(完全相同的版本、安装等),永远不会打开.config

配置文件内容如下所示

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
      ...
    </configSections>
    <system.diagnostics>
      <switches>
        <add name="MySwitch" value="4" />
      </switches>
    </system.diagnostics>
</configuration>
正如我所说,这在许多安装上都有效,但在少数安装上不起作用。我已经运行了PROCMON来监视配置文件上的文件事件。在加载文件的系统上,PROCMON会在跟踪中显示该文件。在未加载的系统上,PROCMON没有显示配置文件

为什么我的C#编译的应用程序扩展名(DLL)会在一个实例中正确加载,而在另一个实例中甚至不会尝试加载配置文件?或者,你能为诊断提供一些建议吗?去哪里看等

更多信息:加载项编译为“任意CPU”,安装在Windows 7 x64上。已安装32位版本的Office 2010(Outlook)。对于工作版本和未打开配置文件的版本,所有这些参数都为真


更多信息(2012年2月21日):加载项以发布模式构建。在VS2008项目属性>构建下,选中“定义跟踪常量”。该解决方案以.NET3.5框架为目标。其行为似乎是,发生故障的机器上的System.Diagnostics.TraceSwitch实现与其他机器上的不同。我使用process explorer将故障机器与正常工作的机器进行了比较,区别主要在于故障机器大多具有预编译程序集,而正常工作的机器则没有。这有关系吗?

您能否更明确地告诉代码使用ConfigurationChannelFactory查找配置信息


您能否更明确地告诉代码使用ConfigurationChannelFactory查找配置信息


是否专门编译为x64但安装在x86机器上?@Brad,我在问题中添加了更多信息。是否专门编译为x64但安装在x86机器上?@Brad,我在问题中添加了更多信息。我可能会在未来的项目中使用这些信息。这个项目仅限于Fx3.5。我可能会在未来的项目中使用它。此项目仅限于Fx3.5。
internal static TraceSwitch myTraceSwitch = 
    new TraceSwitch("MySwitch", "My Trace Level Switch");