Подтвердить что ты не робот

"Ожидаемый файл блокировки не существует. Запустите" dnu restore "" сразу после того, как я это сделал

Я запускаю beta7 для всего, включая EF 7. Я пытаюсь подключиться к моей удаленной существующей базе данных, используя проект ASP.NET 5 Application template. Мой проект .json выглядит так:

{
  "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

Что я не мог сделать, потому что у меня была проблема, которая была решена, как описано здесь: Использование существующей базы данных с ASP.NET 5 и EF7 (бета 7)

Теперь я могу, наконец, запустить команду "dnx", но когда я попробую запустить ее с моей строкой соединения, которая выглядит так:

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 успешно, кажется (timestamp также отражает это). Однако, когда я снова запускаю свой scaffold script, он продолжает показывать ту же самую ошибку, показанную выше, включая часть "ожидаемый файл блокировки не существует".

Любая идея, что пойдет не так?

4b9b3361

Ответ 1

Я столкнулся с той же проблемой и исправил ее: - Щелкните правой кнопкой мыши на "Ссылки" - Выберите "Восстановить пакеты"

Или Ctrl + Shilf + R

Он создаст/обновит файл project.lock.json, который включает полный список всех пакетов NuGet, которые использует приложение. На мой взгляд, вы не должны ставить его в исходное управление

Ответ 2

Попробуйте следующее:

Закройте Visual Studio полностью.

Откройте окно командной строки Visual Studio.

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

dnu restore

dnx ef dbcontext scaffold "ConnectionString" EntityFramework.SqlServer

Ответ 3

Если вы используете эту команду для приложения, которое в настоящее время выполняется в среде ядра 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 в значительной степени безвредны)

Ответ 4

У меня была такая же проблема, я попытался удалить ссылки и добавить их, но это не удалось. я перешел в ManageNugetPackage manager и удалил из внутренних настроек собственный внутренний ресурс nuget и восстановил мои пакеты, и он работал (я также удалил старый файл project.lock).

Ответ 5

Я обнаружил, что если вы создадите папку решения для визуальной студии на пути UNC, эта ошибка возникнет.

Часто пути UNC отображают вашу папку "Документы" при использовании окон на виртуальной машине (например, Parallels для Mac), поэтому visual studio будет использовать этот путь по умолчанию для новых решений.

Чтобы устранить проблему, я переместил папку решения для визуальной студии на дисковод виртуальной машины, а затем повторно открыл проект.

Ответ 6

У меня была аналогичная проблема с VS 2015, жалующейся на отказ в восстановлении ссылок AspNetCore и один из сообщений об ошибках, указывающих на "восстановление dotnet". восстановление данных в режиме "dotnet" завершилось неудачно. Но,

Решение, которое работало, заключалось в удалении ссылки на локальную подачу пакета nuget с использованием настроек диспетчера пакетов Nuget.