Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/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# 为什么应用程序设置在Outlook加载项或其他环境中不起作用_C#_Visual Studio_Outlook Addin - Fatal编程技术网

C# 为什么应用程序设置在Outlook加载项或其他环境中不起作用

C# 为什么应用程序设置在Outlook加载项或其他环境中不起作用,c#,visual-studio,outlook-addin,C#,Visual Studio,Outlook Addin,应用程序设置的状态为: 不能在承载.NET Framework的非托管应用程序中使用应用程序设置。在VisualStudioAddies、微软Office C++、Internet Explorer中的控件托管、微软Outlook插件和项目等环境中,设置将不起作用。 我在应用程序设置中创建了一个字符串,并从Microsoft Outlook加载项中的代码中访问了它。它似乎工作得很好 在什么情况下不起作用?应用程序设置取决于是否存在要读取的“.config”文件。这将是exe主机的“.exe.co

应用程序设置的状态为:

不能在承载.NET Framework的非托管应用程序中使用应用程序设置。在VisualStudioAddies、微软Office C++、Internet Explorer中的控件托管、微软Outlook插件和项目等环境中,设置将不起作用。 我在应用程序设置中创建了一个字符串,并从Microsoft Outlook加载项中的代码中访问了它。它似乎工作得很好


在什么情况下不起作用?

应用程序设置取决于是否存在要读取的“.config”文件。这将是exe主机的“.exe.config”或IIS应用程序的“web.config”。Outlook、IExplore等。。。不要附带配置文件。您是否尝试过更改值?使用VS创建的设置具有硬编码的默认值,您可能会被欺骗以为它可以工作

编辑:原来的帖子仍然有效,因为配置文件的基本.NET机制就是这样工作的。但是,运行.NET Framework的主机应用程序必须为其创建“应用程序域”(请参阅)
作为该AppDomain对象创建信息的一部分,主机可以指定要使用的配置文件的路径(请参阅)。OS加载器(用于EXE)创建一个AppDomain,并将“.config”作为配置文件添加到EXE的路径中。看起来(至少Outlook/.NET的某些版本)将使用带有“.config”插件的插件DLL路径。这对我来说现在很难复制,但似乎是可行的。我记得使用Outlook 2007/.NET 2加载项时,它不起作用。

可能重复未回答的问题:实际上,它确实发布了一个适用于Outlook加载项的“.dll.config”。这与我所指的不同吗?“.dll.config”只是VisualStudio跟踪dll所需设置的一种方法。但要使用它们,您需要将它们复制到相应的“.exe.config”中,以更改已发布外接程序的“.dll.config”中的应用程序设置。不过,有趣的是。。。我将在周末调查此事。上次我检查时,仅仅添加一个“.dll.config”对运行时没有任何影响。还是在部署或调试之前更改了VS解决方案中的设置?另外:您使用的是什么版本的outlook/vs?我发布并部署到了与开发环境不同的计算机上,然后修改了那里的“.dll.config”文件。我使用的是VS2010、Outlook 2010、Office程序集版本14、.NET Framework 4。“.dll.config”似乎不存在于我正在调试的计算机上,而只存在于我部署到的计算机上。