回答  app.config编译但返回null值。

加入
1月27日,2021年1月27日
消息
9
编程经验
5-10
亲爱的开发人员,

我想澄清我的理解,有没有核心包为system.configuration.configurationManager提供的应用程序配置文件的错误。试图遵循Microsoft建议但ConfigurationManager.AppSettings ["key0"]无法收到输入。

以下是代码:
XML:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup>
        <supportedRuntime version ="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <appSettings>
        <add key ="key0" value="test"/>
    </appSettings>
</configuration>
在Program.Cs:
C#:
using System.Configuration;
using System.Collections.Specialized;

static void Main(string[] args)
{
     string sSrvName = ConfigurationManager.AppSettings["Key0"];
}

非常感谢您的分享。


此致
 
最后编辑了主持人:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,878
地点
切萨皮克,va.
编程经验
10+
应用设置区分大小写。 app.config有"key0",但你想找到"Key0".
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,710
地点
悉尼,澳大利亚
编程经验
10+
无论如何,我通常会建议您的未使用该配置文件的该部分。如果添加了您的设置 设置 page of the project properties then you can access them in code via Properties.Settings.Default. You will then get full Intellisense and strong typing because there is a property created for each setting. That means that you can't make a mistake like you did here.
 
加入
1月27日,2021年1月27日
消息
9
编程经验
5-10
应用设置区分大小写。 app.config有"key0",但你想找到"Key0".
你好,

感谢您的建议。纠正但仍然存在。

1613527250548.png.


app.config到目前为止,您的目的常常运行吗?
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,710
地点
悉尼,澳大利亚
编程经验
10+
无论如何,我通常会建议您的未使用该配置文件的该部分。如果添加了您的设置 设置 page of the project properties then you can access them in code via Properties.Settings.Default. You will then get full Intellisense and strong typing because there is a property created for each setting. That means that you can't make a mistake like you did here.
这些设置仍然存储在配置文件中,因此可以在部署后用手修改它们,但在不同的部分中可以修改。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,710
地点
悉尼,澳大利亚
编程经验
10+
.NET Core 2.0。是的,不是框架。
对于未来的参考,这是重要信息,因为除非另有说明,大多数人将假设.NET框架。事实上,你提到尼古特包让我可疑,但有些可能没有注意到。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,710
地点
悉尼,澳大利亚
编程经验
10+
我刚刚测试了一个.NET Core 3.0应用程序,它对我罚款。
App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="key0" value="test"/>
  </appSettings>
</configuration>
Program.cs:
using System.Configuration;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var key0 = ConfigurationManager.AppSettings["key0"];
        }
    }
}
key0 contained the value "test" when I debugged that.
 
加入
1月27日,2021年1月27日
消息
9
编程经验
5-10
这些设置仍然存储在配置文件中,因此可以在部署后用手修改它们,但在不同的部分中可以修改。

这些设置仍然存储在配置文件中,因此可以在部署后用手修改它们,但在不同的部分中可以修改。
对于未来的参考,这是重要信息,因为除非另有说明,大多数人将假设.NET框架。事实上,你提到尼古特包让我可疑,但有些可能没有注意到。
我非常感谢您的建议。我注意到它。

原谅我的浅薄的理解,是它不鼓励使用app.config吗?我没有启用IntelliSense。我没有探索properties.settings.default。

我正在寻找其他替代方案来按行读取配置文件行并将其存储为变量。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,710
地点
悉尼,澳大利亚
编程经验
10+
无论如何,我通常会建议您的未使用该配置文件的该部分。如果添加了您的设置 设置 page of the project properties then you can access them in code via Properties.Settings.Default. You will then get full Intellisense and strong typing because there is a property created for each setting. That means that you can't make a mistake like you did here.
看来,应用程序设置不可用.NET核心控制台应用程序项目,因此您可以划伤该建议。
 

jmplhinney.

C#论坛主持人
工作人员
加入
2011年4月23日
消息
3,710
地点
悉尼,澳大利亚
编程经验
10+
我刚刚将我的.NET核心项目降级为2.0并再次运行它并再次运行。值得注意的是,添加的Nuget包是版本5.0.0,最早版本为4.4.0。版本4.4.1具体提及.NET Core 2.0但更高版本的依赖性。他们确实提到了.NET标准,如果我记得正确,那么.NET Core 2.0确实实现了.NET标准2.0。无论如何,它适用于我定位.NET Core 2.0,但这是在2019年的VS。
 
加入
1月27日,2021年1月27日
消息
9
编程经验
5-10
我刚刚将我的.NET核心项目降级为2.0并再次运行它并再次运行。值得注意的是,添加的Nuget包是版本5.0.0,最早版本为4.4.0。版本4.4.1具体提及.NET Core 2.0但更高版本的依赖性。他们确实提到了.NET标准,如果我记得正确,那么.NET Core 2.0确实实现了.NET标准2.0。无论如何,它适用于我定位.NET Core 2.0,但这是在2019年的VS。
随着我目前的提供PC总是得到"Invalid pointer"运行VS 2019时,所以我将Nuget从5.0.0安装到早期版本4.4.0仍然获取空值。

我正在寻找实现StreamReader

非常感谢你。
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,878
地点
切萨皮克,va.
编程经验
10+
我的建议实际上弄清楚了阻止VS2019在给您的机器上运行的内容。遵循其他线程中提供的链接。如果需要,请使用您的IT部门打开一个支持案例。鼓励他们使用微软开立一个支持案例,如果他们无法在IT部门的资源中弄清楚。谁知道您的机器上的其他/将在不解决该问题的情况下发生故障?

在等待它们弄清楚的时,安装VirtualBox或使用Hyper-V,然后在Guest Win10操作系统中安装VS2019。

如果你真的必须坚持vs2017,那么我也会鼓励你也只是坚持使用.NET框架,而不是使用.NET Core 2.x。 .NET Core 2.0结束了2018年10月1日的,和.NET Core 2.2 2019年12月23日的结束支持。即使是.NET核心2.1已被标记为LTS(长期支持),在2021年8月21日结束。
 
加入
1月27日,2021年1月27日
消息
9
编程经验
5-10
我的建议实际上弄清楚了阻止VS2019在给您的机器上运行的内容。遵循其他线程中提供的链接。如果需要,请使用您的IT部门打开一个支持案例。鼓励他们使用微软开立一个支持案例,如果他们无法在IT部门的资源中弄清楚。谁知道您的机器上的其他/将在不解决该问题的情况下发生故障?

在等待它们弄清楚的时,安装VirtualBox或使用Hyper-V,然后在Guest Win10操作系统中安装VS2019。

如果你真的必须坚持vs2017,那么我也会鼓励你也只是坚持使用.NET框架,而不是使用.NET Core 2.x。 .NET Core 2.0结束了2018年10月1日的,和.NET Core 2.2 2019年12月23日的结束支持。即使是.NET核心2.1已被标记为LTS(长期支持),在2021年8月21日结束。
亲爱的跳伞运动员,

非常感谢您指出.NET核心的EOL,我从早期阅读中忽略了这一部分。我会遵循你的建议。

我必须使用控制台应用程序.NET核心,因为需要像Linux一样部署跨平台。

这是问题为什么要去.NET核心

可以在Linux上运行.NET Framework吗?
核心是跨平台并运行 Linux. ,麦克斯和窗户。 。 净框架 仅在Windows上运行。

感激!!!
 

约翰

C#论坛主持人
工作人员
加入
2011年4月23日
消息
1,158
地点
挪威
编程经验
10+
最佳 底部