Dot-Net-Core

dotnet core user-secrets執行檔神秘失踪,為什麼?

  • July 28, 2018

安裝了最新的(我認為).NET Core,通過 Visual Studio 2015 創建了一個 .NET Core Web 項目,並嘗試開始使用使用者機密。CLI 聲稱它失去(在聲稱已安裝它之後……),如下所示:

E:\Projects\CodeServer>dotnet --version
1.0.0-preview1-002702

E:\Projects\CodeServer>dotnet restore
<snip>
log  : Restoring packages for tool 'Microsoft.Extensions.SecretManager.Tools' in E:\Projects\CodeServer\src\CodeServer\project.json...
<snip>
log  : Restore completed in 2345ms.

NuGet Config files used:
   C:\Users\Work User\AppData\Roaming\NuGet\NuGet.Config
   C:\ProgramData\nuget\Config\Microsoft.VisualStudio.Offline.config

Feeds used:
   https://api.nuget.org/v3/index.json
   C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\

E:\Projects\CodeServer>dotnet user-secrets -h
No executable found matching command "dotnet-user-secrets"

E:\Projects\CodeServer>

還為每個請求添加 project.json 文件:

{
 "userSecretsId": "<snip>",

 "dependencies": {
   "Microsoft.NETCore.App": {
     "version": "1.0.0-rc2-3002702",
     "type": "platform"
   },
   "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.Razor.Tools": {
     "version": "1.0.0-preview1-final",
     "type": "build"
   },
   "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
   "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
   "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
   "Microsoft.EntityFrameworkCore.Tools": {
     "version": "1.0.0-preview1-final",
     "type": "build"
   },
   "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
   "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
   "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
   "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
   "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
   "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
   "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
   "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
     "version": "1.0.0-preview1-final",
     "type": "build"
   },
   "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
     "version": "1.0.0-preview1-final",
     "type": "build"
   },
   "Microsoft.AspNetCore.Authentication.Google": "1.0.0-rc2-final"
 },

 "tools": {
   "Microsoft.AspNetCore.Razor.Tools": {
     "version": "1.0.0-preview1-final",
     "imports": "portable-net45+win8+dnxcore50"
   },
   "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
     "version": "1.0.0-preview1-final",
     "imports": "portable-net45+win8+dnxcore50"
   },
   "Microsoft.EntityFrameworkCore.Tools": {
     "version": "1.0.0-preview1-final",
     "imports": [
       "portable-net45+win8+dnxcore50",
       "portable-net45+win8"
     ]
   },
   "Microsoft.Extensions.SecretManager.Tools": {
     "version": "1.0.0-preview1-final",
     "imports": "portable-net45+win8+dnxcore50"
   },
   "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
     "version": "1.0.0-preview1-final",
     "imports": [
       "portable-net45+win8+dnxcore50",
       "portable-net45+win8"
     ]
   }
 },

 "frameworks": {
   "netcoreapp1.0": {
     "imports": [
       "dotnet5.6",
       "dnxcore50",
       "portable-net45+win8"
     ]
   }
 },

 "buildOptions": {
   "emitEntryPoint": true,
   "preserveCompilationContext": true
 },

 "runtimeOptions": {
   "gcServer": true
 },

 "publishOptions": {
   "include": [
     "wwwroot",
     "Views",
     "appsettings.json",
     "web.config"
   ]
 },

 "scripts": {
   "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
   "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
 }
}

使用toolsproject.json 文件部分中定義的任何工具包時,您必須從包含 project.json 文件的同一目錄中使用它們。

例如,您的 project.json 文件位於 中E:\Projects\CodeServer\src\CodeServer\project.json,但您正嘗試從 執行命令E:\Projects\CodeServer。如果您E:\Projects\CodeServer\src\CodeServer\在嘗試使用這些工具之前切換到該目錄,那麼這些命令將起作用。

我發現包管理器控制台有時(或一直)無法使用正確的目錄(即使在預設項目下拉列表中選擇了它)。如果您首先執行命令“cd src\YourProjectName”,然後執行例如“dotnet user-secrets -h”(尋求幫助),您應該能夠使用 user-secrets 工具。

dotnet 使用者機密

引用自:https://stackoverflow.com/questions/37713769