2013-06-16 45 views
9

Tôi đã viết một ứng dụng VB.NET đơn giản hoạt động tốt trên máy phát triển.Ứng dụng bị treo khi khởi động - thiếu Microsoft.VisualBasic.PowerPacks

Tuy nhiên trên một máy khác, mặc dù .NET Framework được cài đặt, nó bị treo khi khởi động với System.InvalidOperationException.

Có vẻ như đã xảy ra sự cố với việc tìm kiếm hội đồng Visual Basic.

Đây là một trong những thất bại (tôi đã thay thế thông tin nhạy cảm với ba dấu chấm):

*** Assembly Binder Log Entry (16/06/2013 @ 15:45:12) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\Users\.... 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = ... 
LOG: DisplayName = Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Users/...... 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = MSystemAdmin.exe 
Calling assembly : MSystemAdmin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in default load context. 
LOG: No application configuration file found. 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs.DLL. 
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs/Microsoft.VisualBasic.PowerPacks.Vs.DLL. 
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs.EXE. 
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs/Microsoft.VisualBasic.PowerPacks.Vs.EXE. 
LOG: All probing URLs attempted and failed. 

Trả lời

16

Không rõ tại sao PowerPacks bị thiếu, .NET 4 Client Profile có thể là một vấn đề. Đã có nhiều phiên bản của PowerPacks xung quanh và việc đánh số phiên bản là một mớ hỗn độn. Trên máy của tôi, phiên bản tương tự được báo cáo là v2.0.50727, mặc dù phiên bản này được lưu trữ trong GAC dưới dạng phiên bản 10.0

Điều tốt nhất cần làm là quay lại dự án của bạn. Nhấp vào biểu tượng "Hiển thị tất cả tệp" trên thanh công cụ trong cửa sổ Solution Explorer. Bây giờ, hiển thị nút Tham chiếu. Mở rộng nó và chọn tham chiếu PowerPacks. Trong cửa sổ Properties, thay đổi Copy Local property thành True.

Tạo lại và thư mục xây dựng của bạn bây giờ sẽ có một bản sao của tệp DLL. Sao chép nó cùng với EXE vào máy đích.

1

Rõ ràng, nó có vẻ là một vấn đề với "PowerPacks"; đây là những điều khiển bổ sung cho những cái được đưa ra theo mặc định trong Visual Studio (trong phần thiết kế biểu mẫu, trong "Toolbox"). Nếu bạn cài đặt required package trên máy tính mục tiêu, mọi thứ sẽ ổn.

Tôi đã gặp vấn đề này trong quá khứ và đề xuất của tôi không dựa trên các yếu tố này: chúng bao gồm các tính năng đẹp (trong trường hợp của tôi, đó là hình elip) nhưng có thể được thay thế bằng một chút công việc và các đối tượng đơn giản hơn. Nếu bạn muốn bán chương trình của bạn cho một đối tượng rộng hơn hoặc ít hơn, dựa vào điều này có thể trở thành vấn đề: gói này không được cài đặt theo mặc định trên hầu như mọi máy tính và do đó bạn sẽ phải yêu cầu khách hàng của bạn tiếp tục cài đặt. Việc định vị các điều khiển cụ thể này thật đơn giản: trên "Hộp công cụ", chúng sẽ được liệt kê trong "PowerPacks" hoặc tương tự.


Sau khi đọc comment Hans passant của, tôi nhớ lại rằng một tập tin .dll phải được đặt trong cùng thư mục với tập tin thực thi, nhưng tôi có ấn tượng rằng gói PowerPacks từ liên kết được cung cấp phải được cài đặt anyway (ít nhất, trên các máy tính không có Visual Studio).

+0

Nó hoạt động chỉ với DLL, nhưng tôi tưởng tượng rằng việc cài đặt các gói nguồn sẽ thực hiện công việc mà không có dll. –

+0

Cảm ơn bạn đã bỏ phiếu, nhưng thực ra Hans Passant là người đưa ra câu trả lời đúng. Trong thực tế, tôi đã có vấn đề này và nên đã xem xét trường hợp cụ thể để nhớ điều tập tin .dll. Trong mọi trường hợp, tôi tiếp tục nghĩ rằng có/không có Visual Studio cài đặt có liên quan cho các PowerPacks; các liên kết được cung cấp bù đắp thiếu này (không chắc chắn nếu các tập tin .dll). – varocarbas

0

tôi đã nâng cấp Visual Studio từ Visual   Studio   năm 2013 để trực quan   Studio   2015 trên Windows mới   10 máy. Khi làm như vậy, tôi đã sao chép thư mục Projects của mình từ máy Windows   7 sang cùng một đường dẫn trên máy Windows   10.

Khi tôi mở một dự án sử dụng MS.VB.PowerPacks.VS Tôi đã được thông báo rằng không thể tìm thấy tệp. Tôi đã tải xuống bản cài đặt mới nhất cho MS.VB.PowerPacks.VS Phiên bản 12.0.0.0.Hình ảnh   Studio   2015 blanked ra trang hình thức của tôi mà dùng PrintForm và thông báo với tôi:

System.IO.FileNotFoundException: Không thể tải tập tin hoặc lắp ráp 'Microsoft.VisualBasic.PowerPacks.VS, phiên bản 10.0.0.0.

Tôi đã thay đổi tham chiếu thành vcersion 12.0.0.0 nhưng vẫn không được nhận dạng.

Sửa lỗi của tôi: Tôi đã sao chép thư mục C:\Program Files(x86)\Reference Assemblies\Microsoft\VBPowerPacks\v10.0 từ máy tính Windows   7 của tôi vào máy tính Windows 10 của mình rồi xóa tham chiếu v12.0.0.0 và thêm tham chiếu v10.0.0.0 vào chương trình. Sau đó tôi thoát khỏi dự án và mở nó lại, và tất cả đều tốt, các hình thức được thể hiện trong vẻ đẹp ban đầu của họ.

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