在 CI/CD 流水线中生成了“User Secrets”错误,但不应该期望找到 secrets.json 文件。
步骤:
- 创建 .NET 5 项目
- 添加用户机密。
- 代码在本地和 CI/CD 流水线中运行。
- 升级到 .NET 6 项目(并预览 NuGet 6.* 包)
代码在本地运行正常,但在 CI/CD 流水线中失败,并显示以下错误:
"The configuration file 'secrets.json' was not found and is not optional."
期望结果:
代码在没有 secrets.json 文件的情况下运行 配置 .NET 6, Microsoft.Extensions.Configuration.UserSecrets: 6.0.0-preview.1.21102.12
回归问题? 在 .NET 5 中可以正常工作,Microsoft.Extensions.Configuration.UserSecrets: 5.0.0.*
System.IO.FileNotFoundException: The configuration file 'secrets.json' was not found and is not optional. The physical path is '/home/runner/work/UserSecretsRegression/UserSecretsRegression/UserSecrets/UserSecrets.Tests/bin/Release/net6.0/secrets.json'.
Stack Trace:
at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at UserSecrets.Tests.UnitTest1.TestMethod1() in /home/runner/work/UserSecretsRegression/UserSecretsRegression/UserSecrets/UserSecrets.Tests/UnitTest1.cs:line 13
%UserProfile%\AppData\Roaming\Microsoft\UserSecrets\<projectSecretGuid>\secrets.json
中。是否可能有人添加了对机密文件的直接引用,然后将该文件设置为“内容”/“复制到输出”? - Neil