Không thể tải tệp hoặc lắp ráp 'Antlr3.Runtime (1)' hoặc một trong các phụ thuộc của nó


82

Tôi gặp lỗi này khi cố gắng chạy MVC4dự án của mình , nó vẫn hoạt động tốt cho đến lần cuối cùng trên các máy khác của tôi, nhưng khi tôi cố gắng chạy nó từ một máy khác, nó cho tôi lỗi này:

Không thể tải tệp hoặc lắp ráp 'Antlr3.Runtime (1)' hoặc một trong các phụ thuộc của nó. Định nghĩa tệp kê khai của hội đồng định vị không khớp với tham chiếu hợp ngữ. (Ngoại lệ từ HRESULT: 0x80131040)

Sau khi đọc về điều này ở đây, tôi đã cố gắng làm :

Install-Package Antlr3.Runtime -Pre

nhưng nó đã không giúp đỡ, bất kỳ ý tưởng?


1
Bạn đã thử bỏ cài đặt trước. phiên bản trước khi cài đặt phiên bản trên?
Spock

1
Tôi đã không cập nhật bất kỳ phiên bản nào. Vừa thay đổi máy
Maven

Bạn đã thử nhấp chuột phải vào giải pháp và sau đó nhấp vào "Bật khôi phục gói nuget"?
TS

Không có câu trả lời nào ở đây hữu ích, nhưng câu trả lời cho bản sao này thì có.
DCShannon

Câu trả lời:


102

Tôi gặp phải vấn đề tương tự khi thử nghiệm với nền tảng ghi nhật ký Nlog miễn phí.

Điều này đã giúp tôi:

Nhập% TEMP% vào File Explorer và xóa tất cả các tệp tạm thời.

Sau đó, tôi không gặp lỗi khi bắt đầu dự án MVC5 của mình trong Visual Studio.


Thông báo lỗi của tôi không có "(1)", nhưng giải pháp này vẫn hoạt động
Roberto

10
Cám ơn vì cái này. Đó là thứ tào lao như thế này của Microsoft đôi khi khiến bạn muốn đưa tay vào thử nghiệm Visual Studio ...
Smyrnian

Tuyệt vời!! Lãng phí quá nhiều giờ cho việc này. Vấn đề của tôi không phải là phần xây dựng mà là việc xuất bản các tạo tác bằng cách sử dụng tệp pubxml bị lỗi trên Máy chủ Jenkins, trong khi nó hoạt động tốt trên máy cục bộ của tôi. Sau khi xóa thư mục tạm thời như được mô tả ở trên, các tạo tác xuất bản hoạt động mà không có vấn đề gì.
yyardim,

40

Cố gắng xóa các tệp tạm thời cho ASP.Net bằng cách thực hiện một trong những cách sau:

  • Nhập% TEMP% vào File Explorer và xóa tất cả các tệp tạm thời.
  • Chuyển đến thư mục "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files" và xóa tất cả các tệp.

7
Cảm ơn bạn. Đối với tôi, đó là lựa chọn 2 đã giúp ích
Rabbi

Tôi đồng ý với @Rabbi. Đó là tùy chọn 2 đã giải quyết vấn đề của tôi. Tôi ước tôi có thể ủng hộ câu trả lời của bạn 10 lần! Cảm ơn rât nhiều. :)
Annie Lagang

31

Đừng quên xóa Tệp ASP.NET Tạm thời trong Framework64. Điều đó đã đánh lừa tôi.

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

Cảm ơn tuyệt vời, đã thử câu trả lời được chấp nhận nhưng không có kết quả cho đến khi tôi thấy bài đăng này, Framework64 đã làm điều đó cho tôi
Joshua Ohana

Điều này làm việc cho tôi và một dll dự án khác được tham chiếu. Trong trường hợp của tôi, tất cả các tham chiếu trong dự án Web đã bị hỏng, thông báo là: "Không thể tải tệp hoặc lắp ráp 'any.dll' hoặc một trong các phụ thuộc của nó". Sau khi dọn dẹp, tham chiếu dll có thể được tạo và tất cả đều hoạt động tốt.
Fer R

27

Chỉ trong trường hợp điều này giúp ai đó.
Tôi gặp sự cố này với Ứng dụng MVC 5. Xóa Antlr3.Runtime.dll khỏi thư mục bin và xây dựng lại đã khắc phục sự cố.


Điều này đã làm việc cho tôi. Cảm ơn. Nhưng tôi vẫn không chắc chắn về lý do thực sự của lỗi này. Ai đó có thể giải thích.
mukulsharma1146,

1
Trong trường hợp của tôi, tôi đã phải xóa WebGrease.dll thay
Tharwen

cảm ơn bạn ... đã dành 3 giờ để giải quyết vấn đề này và đây là bước đã loại bỏ YSOD của tôi.
Joshua K

18

Vấn đề của tôi là phiên bản mới nhất của WebGrease cài đặt phiên bản 3.4.1.9004 của Antlr. Sau khi tôi cài đặt WebGrease và sau đó cập nhật Antlr lên phiên bản 3.5.0.2, lỗi đã biến mất.


11
Vấn đề của tôi chính xác là vấn đề này. Tôi đã phải giải phóng chuỗi phụ thuộc trong Bảng điều khiển Trình quản lý Gói bằng cách gỡ cài đặt Microsoft.AspNet.Web.Optimization, WebGrease và Antlr (theo thứ tự đó), sau đó cài đặt gói Microsoft.AspNet.Web.Optimization, gói cập nhật WebGrease và cuối cùng là cập nhật -package Antlr (theo thứ tự đó) để tải phiên bản mới nhất và khắc phục sự cố phiên bản Antlr.
Wade

13

Đối với tôi, việc xóa nút này trong tệp web.config đã loại bỏ thông báo lỗi:

<identity impersonate="true" userName="" password="">

Nhưng điều thực sự hiệu quả với tôi là cấp quyền truy cập đầy đủ (cho userName được chỉ định trong mạo danh), vào thư mục Tệp ASP.NET Tạm thời "được tìm thấy trong C: \ Windows \ Microsoft.NET \ Framework {version} (hoặc Framework64).

Danh tính cũng có thể được lưu trữ trong Cài đặt Nhóm Ứng dụng Trang Web, trong IIS.

Đảm bảo rằng gói nuget của bạn được cài đặt chính xác, với phiên bản chính xác. Nếu không có gì khác hoạt động, thì chỉ cần thử thêm lại tham chiếu từ một thư mục cục bộ và đặt nó thành Sao chép cục bộ.


1
Điều này đã giải quyết vấn đề cho tôi. web.config có cài đặt mạo danh trong môi trường dàn dựng và tài khoản người dùng đó không tồn tại trong thế giới phát triển của tôi.
ttomsen

Tôi đã thử cả ba đề xuất và không có đề xuất nào hoạt động. Vẫn nhận được một YPOD 1. Không được <identity thẻ trong web.config của tôi 2. Tôi đã 'toàn quyền kiểm soát' cho cả hai iis_usrs & users \ johnny 3. tùy chọn cuối có vẻ như một hack
dannyrosalex

Tôi đã giải quyết nó bằng cách sử dụng lệnh:ASPNET_REGIIS -GA impersonatedusername
cslecours

Điều này đã giúp giải quyết vấn đề của tôi. Tôi đang làm việc cục bộ và như tên tài khoản được đề cập trong phần tử này không có quyền truy cập vào thư mục nhà phát triển của tôi.
Aamol

Cảm ơn, giải pháp này thực sự hữu ích.
Josue Barrios

11

Nếu bất kỳ giải pháp nào giải quyết được sự cố của bạn, hãy xác minh web.config, phiên bản của assembly

<dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>

Cảm ơn. Trong trường hợp cập nhật gói và đối mặt với sự cố, câu trả lời này phù hợp với tôi.
Fereydoon Barikzehy

Tôi đã tháo lắp ráp này, sau đó nó hoạt động cho tôi. Cảm ơn bạn!!
Người dùng6667769

7

Một trong những cách đơn giản là cập nhật antlr và webgrease

  1. Trình quản lý bảng điều khiển gói Goto
  2. sau đó thử áp dụng từng mã một
  3. PM> Cập nhật gói Antlr
  4. PM> Cập nhật gói WebGrease

Cuối cùng lỗi đã được giải quyết


2

Đối với tôi, điều này là do sự không khớp giữa phiên bản gỡ lỗi và thời gian chạy của Antlr.

Cuối cùng đã giải quyết nó bằng cách cài đặt một gói Antlr khác: Install-Package Antlr


2

Cố gắng mở khóa Antlr3.Runtime.dll nếu bạn thêm tham chiếu theo cách thủ công: nhập mô tả hình ảnh ở đây


2

Đã xảy ra sự cố với impersonate = "true" trong web.config, tôi đã xóa dòng nó hoạt động !!

Một lần nữa, tôi lại đặt dòng và cấp quyền quản trị cho người dùng tài khoản mạo danh, toàn bộ ứng dụng của tôi đã hoạt động :)


1

Nếu bạn đang sử dụng tính năng mạo danh. Câu trả lời là cấp quyền cho người dùng mà bạn đang mạo danh quyền truy cập vào các thư mục sau:

  1. C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

  2. Thư mục trang web của bạn.

Ngoài ra, bạn có thể cần tạo thư mục như sau:

C:\Windows\Microsoft.NET\Framework\[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files\[Application-Name-Goes-Here]

Nhưng hãy thử cái trước đầu tiên, nó hiệu quả với tôi.

Hai thay đổi đó để cấp quyền cho người dùng mạo danh để có thể lưu dữ liệu tạm thời và kéo các tệp dll cũng như bất kỳ tệp nào cần thiết từ các thư mục

Cập nhật, Đối với Windows 10 Đây là giải pháp phù hợp với tôi

Chúng tôi sẽ thực hiện cả hai bước, nhưng Thay vì C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

Ghi% TEMP% vào trình khám phá tệp và cấp quyền cho người dùng mà bạn đang mạo danh quyền truy cập vào thư mục sau: C:\Users\[UserName]\AppData\Local\Temp\Temporary ASP.NET Files


0

Trong một dự án, tôi đã tham chiếu đến WebGrease, nhưng không có phần tử tương ứng trong package.config. Tôi xóa tham chiếu khỏi dự án, vì tôi không cần nó nữa. Nó hoạt dộng bây giờ.


0

Tôi đã thử tất cả các câu trả lời trong bài đăng này, nhưng không câu trả lời nào phù hợp với tôi.

Vì vậy, tôi đã xóa tất cả các thư mục / bin bên trong tất cả các dự án khỏi giải pháp của mình, làm sạch và xây dựng lại giải pháp và cuối cùng nó đã hoạt động!

Cả buổi sáng của tôi đã lãng phí làm việc để tìm ra vấn đề ...


0

những gì đã làm cho tôi là xóa danh tính = true khỏi webconfig của tôi (thuộc thuộc tính system.web) và xây dựng lại giải pháp và xuất bản lại (nếu cần) và nó hoạt động như một sự quyến rũ!


cái này nên được bình luận
Usman Maqbool

0

Vấn đề của tôi cuối cùng là do thay đổi đối với các ổ đĩa được ánh xạ trong Chính sách nhóm của chúng tôi. Giải pháp của tôi có cài đặt tempDirectory được đặt trong Web.config để sử dụng thiết lập ổ RAM làm ổ Z: của tôi. Rõ ràng là họ đã bắt đầu sử dụng ổ Z: và các tệp DLL được sao chép sang tempDirectory như bình thường, nhưng sau đó tôi nghĩ rằng chúng đã bị xóa bởi một quy trình trên máy chủ từ xa (có thể là quét vi-rút). Tôi chỉ có thể tìm ra điều này bằng cách sử dụng Process Monitor và lọc Antlr và thấy rằng nó đang tìm kiếm một vị trí mạng cho các DLL.


0

Tôi đã cập nhật tất cả các gói trong Trình quản lý gói Nudget và nó đã hoạt động! Trong trường hợp của tôi, tôi đang lưu trữ trang web của mình trong GoDaddy


0

Sau khi cố gắng xóa tệp tạm thời .netframework mà không thành công, tôi đã thay đổi

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web> 

Chỉ với targetFramework = "4.6" thay vì 4.6.1 trang Web hiển thị không có lỗi. Tiếp theo, tôi lại thay đổi thành targetFramework = "4.6.1" và khởi động lại máy chủ. Mọi thứ vẫn ổn.


0

Đối với tôi, giải pháp là chạy Visual Studio với tư cách Quản trị viên. Nó rõ ràng là một vấn đề về quyền.


0

Giải pháp cho tôi là đi tới Công cụ> Trình quản lý gói NuGet> Quản lý gói cho giải pháp

Sau đó nhấp vào Antlr3 và đảm bảo rằng nó đã được cài đặt trong:

  1. Dự án khởi nghiệp
  2. Bất kỳ thư viện nào sử dụng phản chiếu
  3. Bất kỳ thư viện nào gọi các thư viện sử dụng phản chiếu

Trong trường hợp của tôi, đó là 4 Dự án sâu cần nó. Khi điều đó đã được thực hiện, vấn đề này cuối cùng đã được giải quyết.


0

Tôi vừa phải đối mặt với vấn đề này và đã thử các giải pháp được đề cập ở trên nhưng không có gì hiệu quả bây giờ, tôi phải xóa dll của nó khỏi bộ mã hóa bin và xây dựng lại, sau đó xóa tất cả các tệp bị rớt hạng khỏi thư mục gói và khôi phục gói bằng bảng điều khiển trình quản lý gói


0

Đã xóa% temp%

Thùng đã xóa

Đã xóa .vs

Bây giờ đã làm việc cho tôi


0

Trong trường hợp của tôi, khi tôi sao chép một dự án, Visual studio 2019 đã thay thế một ký tự khoảng trắng bằng '% 20' trong đường dẫn của dự án. Sau đó, khi VS cố gắng tìm các gói nugget, nó không thể tìm thấy đường dẫn chính xác.


0

Tôi gặp phải vấn đề này sau khi nâng cấp Microsoft.AspNet.Web.Optimization

update-package WebGreaseupdate-package Antlr(theo thứ tự đó) để tải phiên bản mới nhất và khắc phục sự cố phiên bản Antlr.


0

Đối với tôi, tôi đã thực hiện các bước này và nó phù hợp với tôi:

1) Tôi đã xóa binobjthư mục (một số tệp không bị xóa bởi Cleandự án)

2) Tôi đã kiểm tra một số tệp như JS đã bị xóa cách đây khá lâu nhưng chúng được đưa vào tệp dự án . Vì vậy, tôi loại trừ chúng.


0

Tôi có một giải pháp đơn giản. Đi tới thư mục dự án của riêng bạn và tìm một thư mục gói.

nhập mô tả hình ảnh ở đây

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.