我有一個ASP.NET Core 2.0應用程序,我可以使用用戶機密就好。但是,我無法在Azure WebJobs應用程序或基本的Windows控制檯應用程序(它們都是.NET 4.6.1)中使用它。我已經爲Microsoft.Extensions.Configuration.AddSecrets添加了nuget,並且AddUserSecrets方法在代碼中正在編譯好。Azure WebJobs是否支持用戶機密?
但是,我無法將用戶密碼添加到項目中。在ASP.Net Core 2.0應用程序上,項目上的右鍵單擊上下文菜單中沒有「管理用戶機密」選項。所以我嘗試從命令行使用dotnet用戶密碼(我已經在ASP.NET Core 2.0應用中成功使用過)。它不起作用,雖然我得到這個錯誤。
No executable found matching command "dotnet-user-secrets"
從閱讀其他文章,它看起來像我需要有Microsoft.Extensions.SecretManager.Tools。
所以我說::因爲我得到這個錯誤,我無法通過的NuGet添加此嚴重性代碼描述項目文件行抑制狀態 錯誤包「Microsoft.Extensions.SecretManager.Tools 2.0.0」的封裝類型'DotnetCliTool'不支持項目'xxx'。 0
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" />
</ItemGroup>
到csproj並試圖恢復包。在這一點上,我得到另一個錯誤:
C:\Program Files\dotnet\sdk\2.0.0\NuGet.targets(102,5): error : Value cannot be null.\r [C:\...\xxx.csproj]
C:\Program Files\dotnet\sdk\2.0.0\NuGet.targets(102,5): error : Parameter name: key [C:\...\xxx]
所以現在我想知道如果用戶祕密是甚至支持.NET 4.6.1項目。如果是這樣,我錯過了什麼?
編輯:我從ASP.NET Core 2.0應用程序中追蹤了secrets.json,並將其複製到適合此控制檯應用程序的新創建的文件夾中,並正確拾取了用戶密碼。所以從使用的角度來看,它看起來可以正常工作。我的問題實際上是以一種方便的方式設置祕密。