Thuật ngữ 'Cập nhật-Cơ sở dữ liệu' không được công nhận là tên của một lệnh ghép ngắn


112

Tôi đang sử dụng EF5 beta1 và trong khi trước đó tôi có thể chạy "Cập nhật-Cơ sở dữ liệu". Bây giờ tôi đã tắt Visual Studio, tôi không thể chạy nó. Tôi nhận được lỗi sau đây:

Thuật ngữ 'Cập nhật-Cơ sở dữ liệu' không được công nhận là tên của lệnh ghép ngắn, hàm, tệp tập lệnh hoặc chương trình có thể hoạt động. Kiểm tra chính tả của tên hoặc nếu một đường dẫn được bao gồm, hãy xác minh rằng đường dẫn đó chính xác và thử lại. Tại dòng: 1 char: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + CompleteQualifiedErrorId: CommandNotFoundException

Tôi đã cố gắng cài đặt lại EF5b1 và mặc dù đã thành công (đã được cài đặt), 'Cập nhật-Cơ sở dữ liệu' vẫn không hoạt động.

Có ai giúp được không???


3
Hôm qua tôi đã gặp sự cố tương tự với một lệnh ghép ngắn khác và việc khởi động lại hệ thống hoàn chỉnh đã giúp ...
nemesv

11
Khởi động lại là không cần thiết. Chúng tôi không chạy tập lệnh init.ps1 sau khi thực hiện khôi phục gói (đó là lý do tại sao không tìm thấy lệnh). Chỉ cần thoát và khởi động lại VS (hoặc dỡ / tải lại dự án).
RickAndMSFT

1
Tôi đã có điều này xảy ra với tôi ngày hôm nay. Tôi đã mở một repo cho một dự án nhóm và nó cần khôi phục một số gói. Sau khi khôi phục, các lệnh update-databaseadd-migrationsẽ không hoạt động. Khởi động lại Visual Studio đã sửa nó.
jmbertucci

Câu trả lời:


169

Tôi đã gặp vấn đề này một số lần gần đây. Tôi tìm thấy giải pháp hiệu quả là đóng Bảng điều khiển Trình quản lý Gói, đóng Visual Studio và sau đó mở lại chúng. Khởi động lại cũng hoạt động hầu hết thời gian, nhưng không phải lúc nào cũng vậy.


7
Thông thường bạn chỉ cần thoát khởi động lại VS. Xem bình luận của tôi trong câu hỏi ban đầu. Trong những trường hợp hiếm hoi, bạn có thể cần phải thoát / khởi động lại VS hai lần.
RickAndMSFT,

1
Chỉ cần đối mặt với sự cố và khởi động lại Visual Studio và mọi thứ đã hoạt động trở lại. Cảm ơn.
Shubh

Cảm ơn bạn, vì một giải pháp hiệu quả, nếu không muốn nói là tồi tệ. Nó dường như là tất cả những gì hoạt động trong số một triệu thứ tôi đã thử.
ProfK

1
Phải, tất nhiên. Đây là giải pháp. Giải pháp hợp pháp. Cảm ơn Microsoft!
Khateeb321

2
Tôi đã cài đặt "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" trên các dự án dữ liệu của mình và "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" trên dự án web chính của mình, điều đó đã giải quyết được sự cố cho tôi.
HaBo

51

Nếu bạn sử dụng Entity Framework:

Thông báo Lỗi: "Thông báo Lỗi (từ lệnh Cập nhật-Cơ sở dữ liệu trong PMC): Thuật ngữ 'Cập nhật-Cơ sở dữ liệu' không được nhận dạng là tên của lệnh ghép ngắn, hàm, tệp tập lệnh hoặc chương trình có thể hoạt động. Hãy kiểm tra chính tả của tên hoặc nếu một đường dẫn được bao gồm, hãy xác minh rằng đường dẫn đó là chính xác và thử lại. "

Giải pháp: "Thoát khỏi Visual Studio. Mở lại dự án và thử lại."

Để biết thêm thông tin, vui lòng truy cập: Kịch bản khung thực thể nâng cao 6 cho ứng dụng web MVC 5 (12 của 12)

Hi vọng điêu nay co ich...


@AlbatrossCafe Sure :)
Murat Yıldız,

1
Nhóm nhà phát triển VS nên cung cấp nút Làm mới VS cho các vấn đề như vậy :)
sohaib đã cập nhật

@sohaibjaved Đối với một số vấn đề, khởi động lại VS sẽ là không đủ và cần làm sạch một số thư mục như được chỉ ra trên Visual Studio 2015 cực kỳ chậm . FYI ...
Murat Yıldız

i bị mất đếm bao nhiêu thứ được giải quyết bằng cách khởi động visual studio
EKanadily

21

Đôi khi khi tôi tải VS, tôi thấy điều này trong bảng điều khiển trình quản lý gói của mình:

Giá trị không thể vô giá trị.

Tên thông số: path1

Tôi chưa biết nguyên nhân nào gây ra điều đó nhưng có vẻ như đã xảy ra sự cố trong quá trình khởi động bảng điều khiển Powershell, điều này làm gián đoạn việc đăng ký các mô-đun cụ thể, chẳng hạn như các phần mở rộng EF powershell. Tuy nhiên, bạn chỉ có thể tải thủ công:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

Đảm bảo rằng bạn thay thế 6.1.1 bằng bất kỳ phiên bản Entity Framework nào hiện tại của bạn.


4
Cảm ơn bạn! Giải pháp duy nhất làm việc cho tôi. Tuy nhiên, đối với bất kỳ ai sử dụng EF 6.1.3 với VS 2015, có một lỗi trong EntityFramework.psm1 và có một bản vá ở đây stackoverflow.com/a/30062684/1267778 .
quốc hội

18

Cài đặt lại gói nuget đã khắc phục sự cố này cho tôi

tức là, thực hiện

Install-Package EntityFramework -Version 5.0.0

trong trình quản lý gói


1
Điều này làm việc cho tôi. Dự án tôi làm việc trên EF đã sử dụng và tôi tự động cho rằng gói đã được cài đặt. Hóa ra không phải vậy. Nhà phát triển vừa tham chiếu trực tiếp đến dll EF. Gói EntityFramework phải được cài đặt trong dự án để cmd Update-Database hoạt động.
stack247

Câu trả lời này dường như không giúp ích được gì tuy nhiên nó đã cứu được ngày của tôi. Cảm ơn,
Nelson Miranda

Vật lộn với FK của ngày hôm nay bằng cách sử dụng API Fluent, v.v. và bằng cách nào đó EntityFramework tiếp tục bị tụt hạng. Điều thực sự làm việc cho tôi dọc theo những dòng này là để làm một việc khác Update-Package -Reinstall EntityFramework.
Matt Borja

cho tôi cài đặt lại và khởi động lại. chỉ cần cài đặt lại không hoạt động và chỉ khởi động lại cũng không hoạt động)
RMazitov

9

bạn sẽ gặp lỗi này khi các công cụ EF không được cài đặt đúng cách.

thử lệnh dưới đây trong trình quản lý gói Nuget // Gỡ cài đặt và cài đặt cùng một Phiên bản EF

Update-Package "EntityFramework" -reinstall

Nếu bạn vẫn gặp phải vấn đề tương tự. tạo một Dự án Web mới và chạy lệnh dưới đây trong nuget.

(Lưu ý: không cần tạo Dự án mới trong cùng một giải pháp hoặc cùng một vị trí.)

// Thao tác này sẽ cập nhật EF lên phiên bản mới nhất (bao gồm các công cụ) // nếu bạn muốn sử dụng phiên bản cụ thể, hãy sử dụng -versioncờ.

Update-Package "EntityFramework"

Sau khi hoàn thành việc này, hãy chcek dự án ban đầu của bạn và bạn có thể xóa dự án mới tạo.


Đúng!! Cảm ơn =) Tôi chỉ cài đặt EntityFramwork, EF.Design, EF.SqlServer và EF.SqlServer.Design.
Janneman96

9

Chỉ cần khởi động lại Visual Studio, nó sẽ giải quyết được vấn đề. Làm việc cho tôi.


Nó thực sự hài hước như thế nào khởi động lại máy tính của tôi làm việc cho vấn đề này
Hoàng tử Tegaton


4

Tôi có vấn đề này giống nhau, và nguồn gốc của nó là vào tên đường dẫn của tôi, tôi đã có trên con đường một tên thư mục với dấu ngoặc thẳng, như thế này: C:\[PROJ]\TestApp.

Khi tôi bỏ dấu ngoặc C:\PROJ\TestApp, nó bắt đầu hoạt động tốt ...


Thông thường bạn chỉ cần thoát khởi động lại VS. Xem bình luận của tôi trong câu hỏi ban đầu.
RickAndMSFT

@RickAndMSFT Đây là giải pháp gần hơn rất nhiều với giải pháp tốt hơn là "chỉ" khởi động lại VS.
ProfK

@Antonio Ngay cả tôi cũng gặp vấn đề tương tự và giải pháp của bạn cũng hiệu quả với tôi.
Người dùng5590 23/02/18

4

Phòng thu hình ảnh Just ReOpen là công việc đối với tôi


4

Đối với tôi, vấn đề là phiên bản Nuget .

  1. gỡ cài đặt Trình quản lý gói Nuget.
  2. khởi động lại Visual Studio.
  3. đã cài đặt phiên bản mới của Trình quản lý gói Nuget.
  4. sau đó khởi động lại Visual Studio một lần nữa.

1
Đây là trường hợp đối với tôi nhưng tôi chỉ cần thiết để cập nhật NuGet trong phần mở rộng và cập nhật
Oak

này làm việc cho tôi, quản lý gỡ bỏ cài đặt gói NuGet, đang cài đặt quản lý gói NuGet, khởi động lại visual studio, gỡ bỏ cài đặt EntityFramework, đang cài đặt EntityFramework
Rizan Zaky

3

Tôi đã giải quyết bằng cách gỡ cài đặt và cài đặt lại "Microsoft.EntityFrameworkCore" và "Microsoft.EntityFrameworkCore.Tools"


1
Nếu bạn đang sử dụng EF Core, đây là câu trả lời chính xác. Hoặc ít nhất, vấn đề đối với tôi là nó Microsoft.EntityFrameworkCore.Toolskhông được cài đặt.
Kirk Woll

2

Sự cố này dường như xảy ra khi bạn mở dự án trực tiếp từ File Explorer. Hãy thử bắt đầu VS trước và sau đó mở dự án - phù hợp với tôi. Tôi đoán đây là về quyền truy cập vào các đường dẫn.


sau khi khởi động lại một vài lần và không giải quyết được, điều này đã giúp giải quyết vấn đề của tôi!
Niklas


0

Nếu các câu trả lời khác không hoạt động (VS 2017): xóa bộ nhớ cache NuGet, khởi động lại VS, sau đó khôi phục các gói.


0

Tôi thấy rằng đó là do một gói bị hỏng. Tôi đã cài đặt Automapper khi nó đã được cài đặt. Rõ ràng là gói này đã bị hỏng khi tôi cố gắng cài đặt một gói khác.

Việc xóa gói bị hỏng đã giải quyết được vấn đề này cho tôi.

Sau đó, bạn có thể cài đặt lại automapper. Vấn đề là với phiên bản 5.4, bây giờ tôi hài lòng với 6.0.


0

Đối với tôi, hóa ra lõi EntityFramework không được cài đặt trong dự án của tôi (vì tôi đã bắt đầu với dự án trống). Vì vậy, cài đặt gói EntityFramework đã giải quyết được vấn đề. Đôi khi nếu cài đặt EntityFramework không thành công thì hãy thử cài đặt từng gói riêng lẻ một

Ví dụ

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

0

Tôi đã giải quyết bằng cách cập nhật Bảng điều khiển Trình quản lý Gói.

Tôi không nhận được Cập nhật-Cơ sở dữ liệu trong Bảng điều khiển Trình quản lý Gói. Sau đó, tôi khởi động lại vài lần. Đồng thời khởi động lại Windows.

Sau đó, tôi tải xuống một cái mới từ nuget và sau đó nó đã được giải quyết.


0

Tôi gặp sự cố này trong Visual Studio 2015 và đã giải quyết nó bằng cách cập nhật phiên bản Nuget.

Công cụ -> Tiện ích mở rộng và Cập nhật -> Cập nhật -> Thư viện Visual Studio


0

Cách khắc phục đơn giản đối với tôi là đảm bảo có một dấu gạch ngang giữa bản cập nhật và cơ sở dữ liệu, như thế này: update-databasevà sử dụng chữ thường. Có thể là ngẫu nhiên, nhưng khi tôi thực hiện việc này trong Bảng điều khiển Trình quản lý Gói, cơ sở dữ liệu thực sự đã cập nhật và tôi nhận được thông báo đã xong chứ không phải not recognized as the name of a cmdlet, function, script filelỗi.


0

Tôi bắt đầu gặp sự cố tương tự sau khi vô tình mở giải pháp Visual Studio bằng Visual Studio 2015 thay vì 2017. Dự án hoạt động tốt trước khi xảy ra lỗi. Đó là một dự án cũ hơn với EF 5.0 chứ không phải EF Core.

Tôi đã thử mọi thứ được đề xuất - khởi động lại Visual Studio vô số lần, dọn dẹp bộ nhớ cache NuGet, xóa mọi thứ trong thư mục gói, cài đặt lại EF 5 cho dự án - không tốt, tiện ích bổ sung không được nhận dạng. Nếu tôi nâng cấp EF lên 6, nó bắt đầu nhận ra các lệnh, nhưng tôi chưa muốn nâng cấp. Vì vậy, ngay sau khi tôi hoàn nguyên về EF 5, sự cố đã quay trở lại.

Điều duy nhất cuối cùng đã cứu tôi là làm như sau:

  • đóng Visual Studio
  • xóa mọi thứ khỏi thư mục gói
  • xóa thư mục .vs trong thư mục gốc của giải pháp của bạn. Thư mục này thường bị ẩn, bạn phải bật cài đặt Hiển thị tệp và thư mục ẩn hoặc chọn Mục ẩn trong tab Xem thư mục
  • khởi động Visual Studio và mở giải pháp của bạn. Nó sẽ yêu cầu khôi phục các gói NuGet, đồng ý với nó.

Bây giờ các lệnh EF cuối cùng đã bắt đầu hoạt động trở lại.


0

Trong trường hợp của tôi:

  • Tải lại dự án không giúp được gì
  • Khởi động lại VS không giúp được gì
  • Khởi động lại máy tính không giúp được gì
  • Reinstal EF không giúp được gì

Nhưng tôi đã tìm thấy một bài báo trong đó đề xuất là nhập thủ công gói EF bị thiếu, bằng cách sử dụng PM Conole:

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

Và giải pháp này đã giải quyết được vấn đề của tôi.


0

Trong trường hợp của tôi, việc khởi động lại Visual Studio (rất nhiều lần) không hoạt động, sau đó khi tôi đang tìm kiếm ở nơi khác, tôi tìm thấy một thông báo trên đầu cuối đầu ra:

.NET SDK hiện tại không hỗ trợ nhắm mục tiêu .NET Core 2.2. Nhắm mục tiêu .NET Core 2.1 trở xuống hoặc sử dụng phiên bản .NET SDK hỗ trợ .NET Core 2.2.

Vì vậy, tôi đã cài đặt phiên bản yêu cầu của .NET Core và lệnh đã chạy thành công.


0

Tôi đã gặp sự cố này trong VS 2019 với một dự án hiện có sử dụng EntityFramework 6.3.0. Dự án này đã có một số thay đổi phiên bản kỳ lạ được thực hiện trong một khoảng thời gian và không có gì làm cho nó hoạt động. Tôi tin rằng tôi đã thử mọi gợi ý được liệt kê ở đây mà không gặp may.

Cuối cùng, việc cập nhật lên phiên bản tiền phát hành của EntityFramework (hiện 6.4.0-preview3-19553-01) đã khắc phục vấn đề, bằng cách chạy này trong Console Package Manager: Update-Package EntityFramework -prerelease. Tôi hy vọng rằng khi phiên bản này được phát hành trực tiếp trong vài tuần tới, nó sẽ hoạt động bình thường.


0

Cài đặt Microsoft.EntityFrameworkCore.Tools đã giải quyết vấn đề cho tôi, đã sử dụng các gói nuget


0

Trong trường hợp của tôi, tôi đã làm như sau: - khôi phục các gói NuGet bị thiếu bằng cách nhấp vào nút "Khôi phục" trên đầu Bảng điều khiển Trình quản lý Gói - Visual Studio đã khởi động lại - chạy update-database


-1

Đối với tôi, vấn đề là phiên bản Nuget.

Tôi đã gỡ bỏ và cài đặt lại Nuget sau đó khởi động lại Visual Studio và sau đó tất cả đều bắt đầu hoạt động.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.