2016-06-08 38 views
12

Cài đặt .NET Core mới nhất (tôi nghĩ), đã tạo một dự án web .NET Core qua Visual Studio 2015 và cố bắt đầu sử dụng các bí mật của người dùng. CLI tuyên bố nó là mất tích (sau khi tự xưng đã cài đặt nó ...), như sau:dotnet lõi người dùng bí mật thực thi bí ẩn mất tích, tại sao?

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> 

Cũng bổ sung thêm file project.json theo yêu cầu:

{ 
    "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%" ] 
    } 
} 
+0

bạn có thể chỉ cho project.json của bạn? – svick

+0

Nó chỉ là mặc định từ VS, nhưng chắc chắn. – Fizzbuzz97

+0

Tôi không thể tạo lại điều này, 'dotnet user-secrets -h' hoạt động tốt đối với tôi với project.json của bạn. – svick

Trả lời

28

Khi sử dụng bất kỳ các gói công cụ được định nghĩa trong phần tools của tệp project.json của bạn, bạn phải sử dụng chúng từ cùng thư mục chứa tệp project.json.

Ví dụ: tệp project.json của bạn nằm trong E:\Projects\CodeServer\src\CodeServer\project.json, nhưng bạn đang cố gắng thực hiện lệnh từ E:\Projects\CodeServer. Nếu bạn thay đổi thư mục E:\Projects\CodeServer\src\CodeServer\ trước khi cố gắng sử dụng các công cụ, các lệnh sau đó sẽ hoạt động.

+1

Đây thực sự là vấn đề. Nó làm tôi bối rối rằng 'dotnet restore' hoạt động từ cấp độ giải pháp nhưng' dotnet user-secrets' thất bại hoàn toàn. Tôi hy vọng một phiên bản tương lai có thể đưa ra một lỗi mô tả hơn. – Fizzbuzz97

12

Tôi nhận thấy đôi khi bảng điều khiển trình quản lý gói (hoặc tất cả thời gian) không thể sử dụng đúng thư mục (ngay cả khi nó được chọn trong danh sách thả xuống dự án mặc định). Nếu trước tiên bạn thực hiện lệnh 'cd src \ YourProjectName' và sau đó ví dụ: 'dotnet user-secrets -h' (để được trợ giúp), bạn sẽ có thể sử dụng công cụ bí mật người dùng.

dotnet user-secrets

+4

Upvote cho cách thay đổi thư mục trong Package Manager Console. Cảm ơn –

+0

Điều này làm việc cho tôi trong Visual Studio 2017 - 15.2. Cảm ơn! –

Các vấn đề liên quan