使用visual studio 2017,当我尝试设置用户密码时,我收到以下错误:
> dotnet user-secrets set Authentication:Google:ClientId mysecretclientid
> Could not find the global property 'UserSecretsId' in MSBuild project 'c:\test\myproj.csproj'. Ensure this property is set in the project or use the '--id' command line option.
我在Startup.cs中有这个:
[assembly: UserSecretsId("project-8084c8e7-0000-0000-b266-b33f42dd88c0")]
...
builder.AddUserSecrets<Startup>();
如果我将此添加到我的csproj:
<PropertyGroup>
<UserSecretsId>project-8084c8e7-0000-0000-b266-b33f42dd88c0</UserSecretsId>
</PropertyGroup>
我收到错误说
Duplicate 'Microsoft.Extensions.Configuration.UserSecrets.UserSecretsIdAttribute'
我做错了什么?
答案 0 :(得分:6)
在VS Code 2019中,您可以使用以下命令在csproj文件中生成UserSecret部分。运行命令时,请确保您位于包含所需csproj文件的目录中。
dotnet user-secrets init
答案 1 :(得分:4)
好的,所以我让它工作,看起来在VS 2017你应该删除&#34; [assembly: UserSecretsId("project-8084c8e7-0000-0000-b266-b33f42dd88c0")]
&#34;属性并在csproj文件中包含以下内容:
<PropertyGroup>
<UserSecretsId>project-8084c8e7-0000-0000-b266-b33f42dd88c0</UserSecretsId>
</PropertyGroup>
答案 2 :(得分:3)
我遇到了相同的错误,并通过生成一个新的UserSecretsId修复了该错误。
如果您在解决方案资源管理器中的项目上单击鼠标右键,然后按Manage User Secrets
,将自动生成UserSecretsId。
答案 3 :(得分:0)
如果您使用外部缓存提供程序(例如redis),请将其放在.csproj文件中
<PropertyGroup><UserSecretsId>Redistest</UserSecretsId></PropertyGroup>
最重的是秘密名称。可能什么都可以。