无法在新项目中使用 app.config
can't make use of app.config in new project
我从标题中知道这听起来像是重复的。事实上,这是对问题的过度简化,它似乎有许多其他症状,我承认我将难以阐明。这个问题我真的不想post,结果搜死了,撞墙了
自从我上次创建一个新的 WinForms 应用程序以来已经有一段时间了,我注意到很多事情都...关闭了。首先,在创建项目时,尽管安装了多个版本的 .NET Framework,但我只获得了 2 个目标框架选项。
我选择了默认选项 (.NET Core 3.1)。这是一个简单的应用程序,旨在更新数据库中项目的状态。对于我的所有项目,我喜欢将连接字符串存储在 app.config 中,但是新项目没有生成这样的文件。这是它在旧项目中的样子:
我决定强行添加一个app.config文件(从项目菜单中的'Add New Item'向导),只是为了调试器在执行中途停止,只有这个错误在控制台:
exception of type 'System.TypeInitializationException' occurred...
在谷歌搜索该问题后,我了解到配置文件的冲突会导致引发该错误,因此我立即删除了我创建的那个并决定查看调试目录。
这是我注意到目录结构与以前不同的地方。以前调试文件夹包含项目文件,现在我看到一个文件夹 netcoreapp3.1。没关系,在浏览其内容后,我发现了一个配置文件,但有一个不同之处。以前的配置文件被命名为 projectname.exe.config,而这个是 projectname.dll.config。 None少,我打开它并添加了我的Appsettings,但它看起来确实与我习惯的不同:
此时,程序运行时没有抛出先前的异常,但现在我的连接字符串没有被设置,因为它不会从 Appsettings 中提取值。这是应该读取字符串的行:
Public Shared Cstring As String = System.Configuration.ConfigurationSettings.AppSettings("ConnectionString")
我是否应该使用其他方法来读取 Appsettings 键,或者我是否需要制作不同类型的配置文件?
我对不同的 app.config 格式一无所知,但我可以告诉您如何解决仅将 .NET 5.0 或 .NET Core 作为项目目标的问题。
如果您在创建新项目时查看可用的项目模板列表,您看到的第一个将是 "Windows Forms App"。正如您所注意到的,这将仅支持 .NET 5.0 或 .NET Core。如果继续向下看列表,您将看到 "Windows Forms App (.Net Framework)"。这是用于支持 5.0 之前/非 Core .NET 的项目模板,例如.NET Framework 4.8.
我从标题中知道这听起来像是重复的。事实上,这是对问题的过度简化,它似乎有许多其他症状,我承认我将难以阐明。这个问题我真的不想post,结果搜死了,撞墙了
自从我上次创建一个新的 WinForms 应用程序以来已经有一段时间了,我注意到很多事情都...关闭了。首先,在创建项目时,尽管安装了多个版本的 .NET Framework,但我只获得了 2 个目标框架选项。
我选择了默认选项 (.NET Core 3.1)。这是一个简单的应用程序,旨在更新数据库中项目的状态。对于我的所有项目,我喜欢将连接字符串存储在 app.config 中,但是新项目没有生成这样的文件。这是它在旧项目中的样子:
我决定强行添加一个app.config文件(从项目菜单中的'Add New Item'向导),只是为了调试器在执行中途停止,只有这个错误在控制台:
exception of type 'System.TypeInitializationException' occurred...
在谷歌搜索该问题后,我了解到配置文件的冲突会导致引发该错误,因此我立即删除了我创建的那个并决定查看调试目录。
这是我注意到目录结构与以前不同的地方。以前调试文件夹包含项目文件,现在我看到一个文件夹 netcoreapp3.1。没关系,在浏览其内容后,我发现了一个配置文件,但有一个不同之处。以前的配置文件被命名为 projectname.exe.config,而这个是 projectname.dll.config。 None少,我打开它并添加了我的Appsettings,但它看起来确实与我习惯的不同:
此时,程序运行时没有抛出先前的异常,但现在我的连接字符串没有被设置,因为它不会从 Appsettings 中提取值。这是应该读取字符串的行:
Public Shared Cstring As String = System.Configuration.ConfigurationSettings.AppSettings("ConnectionString")
我是否应该使用其他方法来读取 Appsettings 键,或者我是否需要制作不同类型的配置文件?
我对不同的 app.config 格式一无所知,但我可以告诉您如何解决仅将 .NET 5.0 或 .NET Core 作为项目目标的问题。
如果您在创建新项目时查看可用的项目模板列表,您看到的第一个将是 "Windows Forms App"。正如您所注意到的,这将仅支持 .NET 5.0 或 .NET Core。如果继续向下看列表,您将看到 "Windows Forms App (.Net Framework)"。这是用于支持 5.0 之前/非 Core .NET 的项目模板,例如.NET Framework 4.8.