在 .net 5 控制台应用程序中利用用户机密

J86*_*J86 4 c# .net-core .net-5

我正在构建一个简单的控制台应用程序来处理大型 CSV 文件。SDK 是版本5.0.202,我使用的是 Manjaro Linux。

\n

代码

\n
using System;\nusing System.Text;\nusing TinyCsvParser;\nusing System.Linq;\nusing Microsoft.Extensions.Hosting;\n\nnamespace DrawsParser\n{\n    class Program\n    {\n        static void Main(string[] args)\n        {\n          var host = new HostBuilder()\n            .ConfigureAppConfiguration((hostContext, builder) =>\n            {\n                if (hostContext.HostingEnvironment.IsDevelopment())\n                {\n                    builder.AddUserSecrets<Program>();\n                }\n            })\n            .Build();\n\n            host.Run();\n\n            CsvParserOptions options = new CsvParserOptions(true, \',\');\n            CsvDrawResultMapping mapping = new CsvDrawResultMapping();\n            CsvParser<DrawResult> parser = new CsvParser<DrawResult>(options, mapping);\n\n            var results = parser\n              .ReadFromFile(@"subset_game_data.csv", Encoding.UTF8)\n              .ToList();\n\n            foreach (var result in results)\n            {\n              var item = result.Result;\n              string text = $"{item.Date.ToString()} | {item.State} | {item.Game} | {item.OriginalResult}";\n              Console.WriteLine(text);\n            }\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

套餐

\n
DrawsParser on \xee\x82\xa0 feature/reading-csv-file [!?] \xe2\x80\xa2NET v5.0.202  net5.0 \xe2\x9d\xaf dotnet list package\nProject \'DrawsParser\' has the following package references\n   [net5.0]:\n   Top-level Package                                     Requested   Resolved\n   > Microsoft.Extensions.Configuration                  5.0.0       5.0.0\n   > Microsoft.Extensions.Configuration.UserSecrets      5.0.0       5.0.0\n   > Microsoft.Extensions.Hosting                        5.0.0       5.0.0\n   > TinyCsvParser                                       2.6.0       2.6.0\n
Run Code Online (Sandbox Code Playgroud)\n

当我运行时,dotnet build .出现以下错误:

\n
\n

/home/ryan/work/will/parser/DrawsParser/Program.cs(18,29):错误CS1061:\'IConfigurationBuilder\'不包含\'AddUserSecrets\'的定义,并且没有可访问的扩展方法\'AddUserSecrets\ ' 可以找到接受 \'IConfigurationBuilder\' 类型的第一个参数(您是否缺少 using 指令或程序集引用?) [/home/ryan/work/will/parser/DrawsParser/DrawsParser.csproj]

\n
\n

我不确定我错过了什么,我实际上正在关注这里的官方文档

\n

Min*_*ipe 7

谷歌搜索C# IConfigurationBuilder.AddUserSecrets导致文档页面,该页面显示AddUserSecret扩展方法是在命名空间中定义的Microsoft.Extensions.Configuration,并检查您的代码是否缺少该using Microsoft.Extensions.Configuration;指令