ありがとうございます。バージョン1.0.1以降では、ユーザーシークレットのIDとしてアセンブリレベルの属性を指定する必要があります。これは以前のproject.jsonと同じようにフォールバックとなります。 https://github.com/aspnet/Announcements/issues/209
あなたはこのような.csprojに秘密IDを定義することができます:
<PropertyGroup>
<UserSecretsId>aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed</UserSecretsId>
</PropertyGroup>
これは、次のアセンブリレベルの属性を生成し、ここで
はGitHubの上での発表です。また、.csprojファイルに追加する代わりに、自分で追加することもできます。 Startup.csに:また
[assembly: UserSecretsId("aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed")]
、あなたが使用する必要があります。それは私がスタートアップクラスを使用し、この場合には、特定のタイプのアセンブリでその属性を検索します
builder.AddUserSecrets<Startup>();
。
注:これは2.0で廃止されます:私は、ユーザーの秘密の設定のためのsource codeをチェックし、なしAddUserSecrets()
を呼び出す
builder.AddUserSecrets();
(1.0.2および1.1.1は廃止、それをマークしています)
var attribute = entryAssembly.GetCustomAttribute<UserSecretsIdAttribute>();
if (attribute != null)
{
return AddUserSecrets(configuration, attribute.UserSecretsId);
}
// try fallback to project.json for legacy support
try
{
var fileProvider = configuration.GetFileProvider();
return AddSecretsFile(configuration, PathHelper.GetSecretsPath(fileProvider));
}
catch
{ }
// Show the error about missing UserSecretIdAttribute instead an error about missing
// project.json as PJ is going away.
throw MissingAttributeException(entryAssembly);
あなたのアセンブリにUserSecretsId
属性を検索しようとし、それを失敗し、それがproject.jsonでそれを見つけることができるかどうかのチェックです:型がこれを行います。そうすれば(コメントとして)欠落している属性についてのエラーが返されます。なぜなら、project.jsonについて非難されたくないからです。
また、 'UserSecretsId'プロパティを持つプロジェクトに' Microsoft.Extensions.Configuration.UserSecrets'依存関係がない場合、その属性は作成されません。 –
その依存関係がない場合は、ユーザーの秘密をまったく使用できないと思います。 – juunas
私は一時的に(私が解決策の多くのプロジェクトの間に定型会話を共有していた「ベース」プロジェクトを介して)依存していました。私は一時的にそれを使用していたときに、アセンブリ属性が欠落していましたが、依存関係を直接追加すると、エラーはなくなりました。 –