我用c#做过一个项目。我的数据库文件是一个Excel工作簿。由于连接字符串的位置在我的编码中是硬编码的,所以在我的系统中安装它没有问题,但在其他系统中有问题。
是否有一种方法可以在应用程序设置完成后立即提示用户设置路径?
我得到的答案是“使用App.Config”…有人知道这个App.config是什么,以及如何在我的环境中使用它吗?
我用c#做过一个项目。我的数据库文件是一个Excel工作簿。由于连接字符串的位置在我的编码中是硬编码的,所以在我的系统中安装它没有问题,但在其他系统中有问题。
是否有一种方法可以在应用程序设置完成后立即提示用户设置路径?
我得到的答案是“使用App.Config”…有人知道这个App.config是什么,以及如何在我的环境中使用它吗?
当前回答
config是一个XML文件,用作应用程序的配置文件。换句话说,您可以在其中存储您想要更改的任何设置,而不必更改代码(并重新编译)。它通常用于存储连接字符串。
关于如何做到这一点,请参阅MSDN文章。
其他回答
最简单的情况是,app.config是一个XML文件,其中有许多可用的预定义配置部分,并支持自定义配置部分。“配置部分”是带有用于存储某种类型信息的模式的XML片段。
概述(MSDN) 连接字符串配置(MSDN)
可以使用内置配置部分(如connectionStrings或appSettings)配置设置。您可以添加自己的自定义配置部分;这是一个高级主题,但是对于构建强类型配置文件来说非常强大。
Web应用程序通常有一个Web。而Windows GUI/服务应用程序有一个app.config文件。
应用程序级配置文件从全局配置文件(如machine.config)继承设置。Web应用程序也从applicationHost.config继承设置。
从App.Config读取
连接字符串具有可以使用的预定义模式。注意,这个小片段实际上是一个有效的app.config(或web.config)文件:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
一旦定义了app.config,就可以使用ConfigurationManager类在代码中读取它。不要被冗长的MSDN示例吓倒;其实很简单。
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
写入App.Config
经常改变*。配置文件通常不是一个好主意,但听起来好像您只想执行一次性设置。
参见:在运行时更改连接字符串并重新加载app.config,其中描述了如何更新*. config中的connectionStrings部分。配置文件在运行时。
注意,理想情况下,您应该从一个简单的安装程序执行这样的配置更改。
App.Config在运行时的位置
Q:假设我手动改变一些<值>在app.config,保存它,然后关闭它。现在,当我转到bin文件夹并从这里启动。exe文件时,为什么它没有反映应用的更改?
答:当你编译一个应用程序时,它的app.config会被复制到bin目录1中,其名称与你的exe相匹配。例如,如果您的exe命名为“test.exe”,则应该有一个(“text.exe”。在。net框架配置”)或(“text.dll。Config " in .net core)在你的bin目录。您可以在不重新编译的情况下更改配置,但需要编辑编译时创建的配置文件,而不是原始的app.config。
1:注意web。配置文件不会移动,而是在编译和部署时保持在相同的位置。一个例外是当web。Config被转换。
net核心
在。net Core中引入了新的配置选项,并在统一的。net(版本5+)中继续使用。就像*。配置文件的工作方式并没有根本性的改变,但是开发人员可以自由地选择新的、更灵活的配置范例。
与。net Framework一样,. net Core的配置可能会变得相当复杂,但实现可以像几行配置和几行c#代码一样简单。
在ASP中配置。网络核心 .NET Core中的配置
config是一个XML文件,用作应用程序的配置文件。换句话说,您可以在其中存储您想要更改的任何设置,而不必更改代码(并重新编译)。它通常用于存储连接字符串。
关于如何做到这一点,请参阅MSDN文章。
你可以通过以下方式访问App.Config中的密钥:
ConfigurationSettings.AppSettings["KeyName"]
看看这个线程
简单地说,App.config是一种基于XML的文件格式,它包含应用程序级配置。
例子:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="key" value="test" />
</appSettings>
</configuration>
您可以使用ConfigurationManager访问配置,如下面的代码片段所示:
var value = System.Configuration.ConfigurationManager.AppSettings["key"];
// value is now "test"
注意:ConfigurationSettings是检索配置信息的过时方法。
var value = System.Configuration.ConfigurationSettings.AppSettings["key"];
只是补充一些我从所有答案中遗漏的东西——即使它看起来很愚蠢,你一知道就知道:
该文件必须命名为“App.config”或“App.config”,并且可以位于与Program.cs相同级别的项目中。
我不知道其他位置是否可行,其他名称(如application.conf,如ODP.net文档中建议的那样)不适合我。
PS.我从Visual Studio Code开始,用“dotnet new”创建了一个新项目。在这种情况下没有创建配置文件,我相信还有其他情况。 pp。你可能需要添加一个nuget包来读取配置文件,在。net CORE的情况下,它将是“dotnet add package System.Configuration.ConfigurationManager—version 4.5.0”