2015-09-28 32 views
23

我正在爲包括EF 7在內的所有設備運行beta7。我試圖連接到使用遠程現有數據庫ASP.NET 5應用程序模板項目。我project.json看起來是這樣的:「預期的鎖定文件不存在,請執行」dnu restore「後立即執行

{ 
    "webroot": "wwwroot", 
    "userSecretsId": "aspnet5-XXX-409e9e37-b7bb-4185-b7aa-6dc336087524", 
    "version": "1.0.0-*", 

    "dependencies": { 
    "EntityFramework.Commands": "7.0.0-beta7", 
    "EntityFramework.SqlServer": "7.0.0-beta7", 
    "Microsoft.AspNet.Authentication.Cookies": "1.0.0-beta7", 
    "Microsoft.AspNet.Authentication.Facebook": "1.0.0-beta7", 
    "Microsoft.AspNet.Authentication.Google": "1.0.0-beta7", 
    "Microsoft.AspNet.Authentication.MicrosoftAccount": "1.0.0-beta7", 
    "Microsoft.AspNet.Authentication.Twitter": "1.0.0-beta7", 
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta7", 
    "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta7", 
    "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta7", 
    "Microsoft.AspNet.Mvc": "6.0.0-beta7", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta7", 
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta7", 
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta7", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta7", 
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta7", 
    "Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta7", 
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta7", 
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta7", 
    "Microsoft.Framework.Logging": "1.0.0-beta7", 
    "Microsoft.Framework.Logging.Console": "1.0.0-beta7", 
    "Microsoft.Framework.Logging.Debug" : "1.0.0-beta7", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta7" 
    }, 

    "commands": { 
    "web": "Microsoft.AspNet.Hosting --config hosting.ini", 
    "ef": "EntityFramework.Commands" 
    }, 

    "frameworks": { 
    "dnx451": { }, 
    "dnxcore50": { } 
    }, 

    "exclude": [ 
    "wwwroot", 
    "node_modules", 
    "bower_components" 
    ], 

    "publishExclude": [ 
    "node_modules", 
    "bower_components", 
    "**.xproj", 
    "**.user", 
    "**.vspscc" 
    ], 

    "scripts": { 
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ] 
    } 
} 

做一個網上搜索它似乎是爲了完成我想我需要運行下面的命令:

dnx ef dbcontext scaffold "ConnectionString" EntityFramework.SqlServer 

,我可以這樣做,因爲我這裏解釋這是亟待解決的問題: Using existing database with ASP.NET 5 and EF7 (beta 7)

現在我終於可以去運行命令「DNX」,但是當我試圖用我的ConnectionString,它看起來像這樣運行它:

dnx ef dbcontext scaffold "Data Source=192.168.XX.XXX\devsql;Initial 
Catalog=Development;Integrated Security=False;User ID=system;Password=XXX;" 
EntityFramework.SqlServer 

它給了我下面的錯誤:

[ERROR] dnx : System.InvalidOperationException: Failed to resolve the 
following dependencies for target framework 'DNXCore,Version=v5.0': 
[ERROR] En línea: 1 Carácter: 1 [ERROR] + dnx ef dbcontext scaffold 
"Data Source=192.168.XX.XXX\devsql;Initial Catalog=Dev ... [ERROR] + 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
[ERROR]  + CategoryInfo   : NotSpecified: 
(System.InvalidO...,Version=v5.0'::String) [], RemoteException [ERROR] 
+ FullyQualifiedErrorId : NativeCommandError [ERROR] [ERROR] EntityFramework.Commands 7.0.0-beta7 [ERROR] 
EntityFramework.SqlServer 7.0.0-beta7 [ERROR] 
Microsoft.AspNet.Authentication.Cookies 1.0.0 [ERROR] -beta7 [ERROR] 
Microsoft.AspNet.Authentication.Facebook 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Authentication.Google 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Authentication.MicrosoftAccount 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Authentication.Twitter 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Diagnostics 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Diagnostics.Entity 7.0.0-beta7 [ERROR] 
Microsoft.AspNet.Identity.EntityFramework 3.0.0-beta7 [ERROR] 
Microsoft.AspNet.Mvc 6.0.0-beta7 [ERROR] 
Microsoft.AspNet.Mvc.TagHelpers 6.0.0-beta7 [ERROR] 
Microsoft.AspNet.Server.IIS 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Server.WebListener 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.StaticFiles 1.0.0-beta7 [ERROR] 
Microsoft.AspNet.Tooling.Razor 1.0.0-beta7 [ERROR] 
Microsoft.Framework.Configuration.Abstractions 1.0.0-beta7 [ERROR] 
Microsoft.Framework.Configuration.Json 1.0.0-beta7 [ERROR] 
Microsoft.Framework.Configuration.UserSecrets 1.0.0-beta7 [ERROR] 
Microsoft.Framework.Logging 1.0.0-beta7 [ERROR] 
Microsoft.Framework.Logging.Console 1.0.0-beta7 [ERROR] 
Microsoft.Framework.Logging.Debug 1.0.0-beta7 [ERROR] 
Microsoft.VisualStudio.Web.BrowserLink.Loader 14.0.0-beta7 [ERROR] 
[ERROR] 
C:\XXX\XXX\src\XXX\project.lock.json(1,0): 
error: The expected lock file doesn't exist. Please run "dnu restore" 
to generate a new lock file. [ERROR] Current runtime target framework: 
'DNXCore,Version=v5.0 (dnxcore50)' [ERROR] Version:  
1.0.0-beta7-15532 [ERROR] Type:   CoreCLR [ERROR] Architecture: x64 [ERROR] OS Name:  Windows [ERROR] OS Version: 
6.1 [ERROR] [ERROR] at Microsoft.Dnx.Runtime.DefaultHost.GetEntryPoint(String 
applicationName) [ERROR] at 
Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, 
String applicationName, String[] args) [ERROR] at 
Microsoft.Dnx.ApplicationHost.Program.Main(String[] args) [ERROR] --- 
End of stack trace from previous location where exception was thrown 
--- [ERROR] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [ERROR] 
at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly 
assembly, String[] args, IServiceProvider serviceProvider) [ERROR] 
at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, 
IRuntimeEnvironment env, FrameworkName targetFramework) [ERROR] at 
Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, 
FrameworkName targetFramework) [ERROR] at 
Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, 
FrameworkName targetFramework) [ERROR] 

鑑於

[ERROR] 
C:\XXX\XXX\src\XXX\project.lock.json(1,0): 
error: The expected lock file doesn't exist. Please run "dnu restore" 
to generate a new lock file. 

我已經嘗試運行

PS C:\XXX\XXX> dnu restore 
Microsoft .NET Development Utility CoreCLR-x64-1.0.0-beta7-15532 

CACHE https://api.nuget.org/v3/index.json Restoring packages for 
C:\XXX\XXX\src\XXX\project.json CACHE 
https://api.nuget.org/v3-flatcontainer/system.threading.threadpool/index.json 
GET 
https://api.nuget.org/v3-flatcontainer/system.net.sockets/index.json 
OK 
https://api.nuget.org/v3-flatcontainer/system.net.sockets/index.json 
1117ms Writing lock file 
C:\XXX\XXX\src\XXX\project.lock.json Restore 
complete, 2071ms elapsed 

NuGet Config files used: 
    C:\Users\XXX\AppData\Roaming\NuGet\NuGet.Config 
    C:\XXX\XXX\NuGet.Config 

Feeds used: 
    https://api.nuget.org/v3-flatcontainer/ 

,成功地再現了project.lock.json,看起來(時間戳也反映了這一點)。但是,當我嘗試再次運行腳手架腳本時,它一直顯示上面顯示的錯誤,包括「預期的鎖定文件不存在」部分。

任何想法發生了什麼問題?

+0

只需運行'DNU restore',而無需在項目的文件夾 –

回答

37

我面臨同樣的問題,並修復它: - 右鍵單擊​​ 「參考」 - 選擇 「還原包」

或Ctrl + Shilf + R

它將創建/更新「project.lock.json」文件,其中包含應用程序正在使用的所有NuGet包的完整列表。在我看來,你不應該把它的源代碼控制

1

如果您正在當前在Windows Server內核環境中執行的應用程序上運行此命令,則Core 5.0將不會經常運行。它可以讀取一些,但不能創建,特別是如果您在IIS中託管。我有這個問題有很多,我覺得最好還是跳過主要依賴EntityFramework.Commands,並跳下來

"frameworks":{ 
    "dnx451":{ 
      "dependencies":{ 
       "EntityFramework.Commands":"7.0.0-beta7" 
      } 
     } 
    ,"dnxcore50"... 

也,確保當你準備運行DNX,運行

dnvm use latest -r clr -arch {your server kernel arch} x64|x86

確保您不試圖調用coreclr命令。應該解決這個問題,而且對我來說在生產服務器上(因爲腳手架的DbContext主要是無害的)

+0

任何參數還要注意的 - 我還沒有多少運氣在所有CoreCLR 50和SQLServer。目前正在研究使用dnx46運行API以及在dnxcore50上運行我的站點應用程序以及使用剩餘數據檢索來改善令人頭疼的性能問題。我使用dnx46順便說一句,因爲它有451缺失的異步異常,這對高I/O API有很大幫助。 –

4

試試這個:

關閉的Visual Studio 完全

打開Visual Studio命令提示符窗口

cd C:\XXX\XXX\src\XXX\ 

dnu restore 

dnx ef dbcontext scaffold "ConnectionString" EntityFramework.SqlServer 
1

我有同樣的問題,試圖刪除引用,並重新加入他們,但失敗了。 我去了ManageNugetPackage管理器,並從設置中刪除了私人內部nuget資源,並恢復了我的軟件包,它工作正常(我也刪除了舊的project.lock文件)

+0

該死的,私人nuget服務器使它失敗。謝謝。 https://github.com/aspnet/Home/issues/711 –

0

我發現如果您創建Visual Studio解決方案文件夾UNC路徑會發生此錯誤。

通常UNC路徑使用Windows時,虛擬機(例如Parallels的適用於Mac)映射您的文檔文件夾,因此Visual Studio將默認爲新的解決方案使用此路徑。

要解決我感動的Visual Studio解決方案文件夾複製到虛擬機的磁盤驅動器的問題,然後重新打開該項目。

0

我有類似的問題,與2015年VS抱怨恢復AspNetCore引用的失敗和指向做一個「DOTNET恢復」的錯誤形式交往之一。在最後的步驟中,dotnet恢復失敗。但是,

奏效被刪除使用NuGet包管理器設置本地NuGet包料參考的解決方案。