C# 为什么赢了';t在某些计算机上加载我的DLL.config文件
我有一个用C#编写的Outlook加载项,即MyAddin.dll,它有一个配置文件MyAddin.dll.config。两者都存储在同一目录中。它们放在那里,由安装程序安装。在大多数安装中,查找和读取配置文件没有问题。但是,在一些安装上(完全相同的版本、安装等),永远不会打开.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
<?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");