Tag: 应用程序设置

更改项目的目标框架后应用程序设置错误

在我的应用程序中,我正在使用此处说明的用户设置。 然后我意识到在VS 2010中我使用的是.NET 4.0,而只有.NET 2.0就足够了。 当我更改框架并构建项目时,在我的代码中,每当我现在访问设置时,我都会收到以下错误: 为userSettings / Vegi_Manager.Properties.Settings创建配置节处理程序时出错:无法加载文件或程序集’System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089’或其依赖项之一。 该系统找不到指定的文件。 (C:\ Users \ AKSHAY \ AppData \ Local \ Microsoft \ Vegi-Manager.vshost.exe_Url_44035dlkzpfaaauiqsd4nh3f0l0yq0tv \ 1.0.0.0 \ user.config第5行) 这是使用4.0版的未知原因。 请建议我该怎么做。

为什么隔离存储不会在我的WP7应用程序中持续存在?

我正在为我的应用程序使用IsolatedStorageSettings.ApplicationSettings。 与隔离存储相关的所有代码都发生在我的Application_Launching,Application_Activated,Application_Closing和Application_Deactivated方法中,如下所示: public IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings; private void Application_Launching(object sender, LaunchingEventArgs e) { if (settings.Contains(“myObjList”)) { App.ObjList = (ObservableCollection)settings[“myObjList”]; } else { settings.Add(“myObjList”, App.ObjList); } } private void Application_Activated(object sender, ActivatedEventArgs e) { if (settings.Contains(“myObjList”)) { App.ObjList = (ObservableCollection)settings[“myObjList”]; } else { settings.Add(“myObjList”, App.ObjList); } } private void Application_Deactivated(object sender, DeactivatedEventArgs e) { settings[“myObjList”] […]

使用应用程序设置中的值存储字符串数组

我修改了我的Settings.settings文件,以使system_Filters成为System.String[] 。 我想在Visual Studio设计器中填充此变量,而不是在代码中填充。 我可以使用以下代码在代码中使用它: Properties.Settings.Default.system_Filters = new string[] { “a”, “b”, “c” }; string _systemFilters = Properties.Settings.Default.system_Filters; 这工作正常。 但是,我没有一个好的地方把它放在我的代码中,理想情况下想在Settings.setting文件中输入它。 此值不会被修改。 我已经尝试了几乎所有我能想到的变体,但结果总是一样的。 有谁知道正确的语法? 如果这更容易,我也愿意使用StringCollection 。

ConfigurationManager.AppSettings在unit testing项目中返回Null

我在app.config文件中有一个带有应用程序设置的C#unit testing项目。 我正在测试一个存在于不同项目中的类。 该类依赖于ConfigurationManager.AppSettings和ConfigurationManager.ConnectionStrings 。 被测试的类所在的项目没有app.config文件。 我原以为,因为该类正在unit testing项目的上下文中实例化,它将使用unit testing项目的app.config文件。 实际上,连接字符串似乎就是这种情况。 该类检索连接字符串没有任何问题。 但是,当类尝试检索任何应用程序设置时,配置管理器始终返回null 。 这里发生了什么? 编辑1 我想也许在测试项目中尝试加载一些设置以查看会发生什么是个好主意。 我试图在调用在外部项目中实例化类的代码之前立即加载unit testing中的设置。 同样的结果,没有。 我想我暂时可以从等式中排除其他项目。 这是我的配置文件的摘录: … … 以下是我尝试加载设置的方法: string test = System.Configuration.ConfigurationManager.AppSettings[“Bing_Key”];

Settings.Default。始终返回默认值而不是持久存储中的值(XML文件)

我最近在C#(.Net 2.0)中编写了一个DLL,其中包含一个需要IP地址的类。 我的同事改变了类以从“.dll.config”(XML)文件中检索IP – 这显然是由他创建的“应用程序设置”文件(Settings1.settings)自动生成的。 这样做的好处是允许最终用户随意更改XML / config文件中的IP地址。 不幸的是,当我从树中检查他的代码并尝试编译(或使用)这个新代码时,任何调用此DLL的应用程序只获取默认值,而不是文件中的值。 调用配置文件的构造函数如下所示: public class form : System.Windows.Forms.Form { public form() { // This call is required by the Windows Form Designer. InitializeComponent(); IP = IPAddress.Parse(Settings1.Default.IPAddress); } } 我在MSDN论坛上找到了对此问题的引用,用户说: “旧”值(您在开发时定义的值)是硬编码的。 如果franework无法访问或打开配置文件,它将使用默认值。 如果您在dll中使用设置,这将始终发生。 这是否意味着我无法在配置文件中存储DLL的外部值? (我的同事以某种方式完成了这项工作……) 由于我的框架似乎无法访问或打开配置文件,我该如何找出它失败的原因? 甚至可以检测到何时发生? 德克尔 :这有点帮助。 不幸的是,我正在将此DLL写入规范,因此我实际上无法访问应用程序的配置文件。 如上所述,我的同事创建了“Settings 1 .settings”文件。 我当时并不理解这一点,但现在似乎添加“1”会使其远离任何调用它的应用程序的设置空间。 我想我想弄清楚的是为什么DLL似乎没有在同一目录中找到它旁边的配置文件。 通过代码逐步跟踪不会显示任何内容。 顺便说一句,我可以将程序集的“输出类型”从“类库”更改为“Windows应用程序”,并在我的DLL代码的开头添加以下行: [STAThread] public […]

C# – 用户设置已损坏

在阅读标准.Net用户设置时,我们遇到了罕见的exception(这是VS 2008中“项目属性”中的设置): System.Configuration.ConfigurationErrorsException was caught Message=”Configuration system failed to initialize” Source=”System.Configuration” BareMessage=”Configuration system failed to initialize” Line=0 StackTrace: at System.Configuration.ConfigurationManager.PrepareConfigSystem() at System.Configuration.ConfigurationManager.GetSection(String sectionName) at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName) at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection() at System.Diagnostics.DiagnosticsConfiguration.Initialize() at System.Diagnostics.DiagnosticsConfiguration.get_IndentSize() at System.Diagnostics.TraceInternal.InitializeSettings() at System.Diagnostics.TraceInternal.get_Listeners() InnerException: System.Configuration.ConfigurationErrorsException Message=”Unexpected end of file has occurred. The following elements are not closed: setting, SettingsTest.Properties.Settings, userSettings, configuration. Line […]

在Visual Studio 2010中记录(XML)应用程序设置

我最近使用Visual Studio(2010)创建了一个(C#)项目并使用了一些设置(我在Properties下创建)。 我找到的唯一可以在我的文档中添加XML注释的地方是Settings.Designer.cs。 但是,此文件是自动生成的,因此每当我更改“设置”时,注释都会消失。 即使是Visual Studio也开始提供mewarnings,“缺少XML评论,以便宣传明显的类型或成员….” 我的问题是:将XML注释添加到我的设置的最佳方法是什么? 有没有比Settings.Designer.cs更好的地方? 我应该停止自动生成文件吗? 怎么样? 还有别的办法吗? 顺便说一句,我正在使用Sandcastle帮助文件生成器

如何更改.NET用户设置位置

默认情况下,设置存储在: C:\Documents and Settings\\Local Settings\Application Data\ 如何将此路径更改为应用程序目录。 我也不想为不同的用户提供不同的文件。 如何使设置全局? 我试图将设置的范围更改为“应用程序”,但后来我无法在运行时更改它们。

dependency injection和AppSettings

假设我正在为我的应用程序定义一个浏览器实现类: class InternetExplorerBrowser : IBrowser { private readonly string executablePath = @”C:\Program Files\…\…\ie.exe”; …code that uses executablePath } 这可能乍一看看起来像个好主意,因为executablePath数据靠近将使用它的代码。 当我尝试在另一台具有外语操作系统的计算机上运行相同的应用executablePath会出现问题: executablePath将具有不同的值。 我可以通过AppSettings单例类(或其中一个等价物)解决这个问题但是没有人知道我的类实际上依赖于这个AppSettings类(它违背了DI ideias)。 它也可能给unit testing带来困难。 我可以通过构造函数传入executablePath来解决这两个问题: class InternetExplorerBrowser : IBrowser { private readonly string executablePath; public InternetExplorerBrowser(string executablePath) { this.executablePath = executablePath; } } 但是这会在我的Composition Root (将要执行所有需要的类连接的启动方法)中引发问题,因为那个方法必须知道如何连接并且必须知道所有这些小设置数据: class CompositionRoot { public void Run() { ClassA […]

为什么我的应用程序设置没有持久化?

所以我有一些用户范围的设置,但由于某种原因,它们没有保存到.exe.config文件中。 我做了以下事情: Properties.Settings.Default.Email = “new@value.com”; Properties.Settings.Default.Save(); 然而,我查看调试文件夹中的设置文件,它仍然是我在visual studio中设置的默认设置。 我做错了吗?