2012-02-11 16 views
22

OK, vì vậy tôi đã tạo một ứng dụng C# và cài đặt nó trên hộp kiểm tra của tôi. Ứng dụng của tôi hoạt động hoàn hảo trên hộp dev của tôi, nhưng khi tôi cài đặt trên một máy khác, nó gặp sự cố trong Main(). Tôi nhận được eventType: CLR20r3C# windows appication Sự kiện: CLR20r3 trên ứng dụng bắt đầu

đây là sự kiện Tin

Problem signature: 
    Problem Event Name: CLR20r3 
    Problem Signature 01: logfileviewer.exe 
    Problem Signature 02: 1.0.0.0 
    Problem Signature 03: 4f356c9c 
    Problem Signature 04: LogFileViewer 
    Problem Signature 05: 1.0.0.0 
    Problem Signature 06: 4f356c9c 
    Problem Signature 07: 94 
    Problem Signature 08: 44 
    Problem Signature 09: System.IO.FileNotFoundException 
    OS Version: 6.1.7601.2.1.0.256.1 
    Locale ID: 1033 
    Additional Information 1: 0a9e 
    Additional Information 2: 0a9e372d3b4ad19135b953a78882e789 
    Additional Information 3: 0a9e 
    Additional Information 4: 0a9e372d3b4ad19135b953a78882e789 

tôi đã sử dụng các chi tiết và nhìn lên các mã lỗi trong IL disassembler và cam trở lại với những điều sau đây ...

Method #5 (06000094) 
    ------------------------------------------------------- 
    MethodName: .ctor (06000094) 
    Flags : [Public] [HideBySig] [ReuseSlot] [SpecialName] [RTSpecialName] [.ctor] (00001886) 
    RVA : 0x000081d0 
    ImplFlags : [IL] [Managed] (00000000) 
    CallCnvntn: [DEFAULT] 
    hasThis 
    ReturnType: Void 
    No arguments. 

.NET 4.0 đã được gỡ cài đặt và cài đặt lại trên hệ thống và không thay đổi bất cứ điều gì. Tôi đã tìm kiếm trên tất cả các mạng và tất cả mọi người với cùng một vấn đề dường như không có một giải pháp. Bây giờ tôi đã dành một ngày rưỡi cho vấn đề này. Tôi sẽ ghét bỏ lỡ thời hạn của tôi để không thể khởi chạy ứng dụng.

Đây là mã duy nhất trong chính tôi()

static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new frmMain()); 
    } 

Sau đây là các chi tiết từ Event Viewer

Application: LogFileViewer.exe 
    Framework Version: v4.0.30319 
    Description: The process was terminated due to an unhandled exception. 
    Exception Info: System.IO.FileNotFoundException 
    Stack: 
     at LogFileViewer.frmMain.InitializeComponent() 
     at LogFileViewer.frmMain..ctor() 
     at LogFileViewer.Program.Main() 

EventData

Application: LogFileViewer.exe 
    Framework Version: v4.0.30319 
    Description: The process was terminated due to an unhandled exception. 
    Exception Info: System.IO.FileNotFoundException 
    Stack: at LogFileViewer.frmMain.InitializeComponent() at LogFileViewer.frmMain..ctor() at LogFileViewer.Program.Main() 

Không chắc cách nhà thiết kế có thể có một ngoại lệ FileNotFound. Tôi đang sử dụng DotNetBar.dll và tôi tham khảo nó ra khỏi thư mục cài đặt, vì vậy mà nên được tốt. Tôi có thể đăng thiết kế của tôi nếu bạn muốn, nhưng có khá nhiều ở đó. có ai có ý tưởng gì không?

+2

Nắm bắt ngoại lệ FileNotFoundException và xem chi tiết của nó để hiểu tệp nào bị thiếu. Tôi cá là DotNetBar.dll – tenorsax

+0

Vâng, đó là DotNetBar. Tôi đã phải di chuyển nó đến gốc ứng dụng mặc dù tôi đã tham chiếu nó từ một thư mục có tên là "tài nguyên". – Tyler

Trả lời

20

Tôi đã nhìn thấy cùng một vấn đề này khi ứng dụng của tôi phụ thuộc vào một hội đồng tham chiếu không có trên máy triển khai. Tôi không chắc những gì bạn muốn nói "tham khảo DotNetBar trong thư mục cài đặt" - đảm bảo rằng nó được đặt thành CopyLocal=true trong dự án của bạn hoặc tồn tại ở cùng một đường dẫn trên cả máy phát triển và sản xuất của bạn.

+0

Có, hoặc bạn có thể thử một công cụ như lắp ráp thông minh cho phép nhúng phụ thuộc vào thực thi của bạn ngoài việc làm xáo trộn nó, do đó bạn sẽ biết nếu nó được gây ra bởi một dll mất tích. – Digvijay

+0

Mặc dù tôi đang tham chiếu đến DotNetBar.dll từ một thư mục tài nguyên mà tôi đã tạo. Nó có vẻ như tôi thực sự phải có .dll trong thư mục gốc, nơi .exe của tôi cư trú. Tôi không có lời giải thích cho việc này. Có lẽ ai đó có thể khai sáng cho tôi về lý do. Vì vậy, đối với những người khác có cùng vấn đề. Di chuyển bất cứ điều gì .dll của bạn đang tham chiếu đến thư mục gốc của bạn và xem nếu điều đó giải quyết vấn đề của bạn. – Tyler

+0

[Điều này có thể giúp] (http://msdn.microsoft.com/en-us/library/yx7xezcf (v = vs.71) .aspx) – RyanR

0

Đã chiến đấu với tất cả các buổi sáng và bây giờ đã giải quyết nó và tại sao nó xảy ra. Đăng với hy vọng nó sẽ giúp người khác

Tôi đã cài đặt Krypton.Toolkit tự động thêm công cụ vào hộp công cụ Visual studio. Sau đó, tôi thêm các công cụ cho nhà thiết kế, tự động thêm dll vào các tham chiếu projrect, tuy nhiên bộ công cụ được đánh dấu là CopyLocal = false

Tôi đã xây dựng trình cài đặt, sử dụng tất cả các dll trong thư mục xây dựng phát hành (tất nhiên ở trên dll không có ở đó).

Đặt copylocal = true, sau đó xây dựng lại trình cài đặt, mọi thứ hoạt động tốt.

3

Tôi gặp phải vấn đề tương tự khi tôi xây dựng một ứng dụng trên một hộp Windows 7 trước đó đã được duy trì trên một máy XP.

Chương trình chạy tốt khi được xây dựng cho Debug, nhưng không thành công với lỗi này khi được xây dựng cho Bản phát hành. Tôi tìm thấy câu trả lời trên trang Thuộc tính của dự án. Chuyển đến tab "Xây dựng" và thử thay đổi Mục tiêu nền tảng từ "Mọi CPU" thành "x86".

-6

Để giải quyết vấn đề CLR20r3 thiết - Local User Policy \ Computer Configuration \ Windows Settings \ Security Settings \ Local Policies \ Security Options - System cryptography: Sử dụng FIPS 140 phù hợp các thuật toán mã hóa, bao gồm cả mã hóa, băm và ký - Disable

3

NET có hai CLRS 2.0 và 4.0. CLR 2.0 hoạt động cho đến khi .NET framework 3.5. CLR 4.0 hoạt động từ .NET 4.0 trở đi. Có thể là giải pháp của bạn đang sử dụng một CLR khác với các assembly tham chiếu của bạn. Trong môi trường phát triển cục bộ của bạn, bạn có thể có cả hai CLR và do đó bạn không gặp phải bất kỳ vấn đề nào. Tuy nhiên khi bạn chuyển sang môi trường triển khai, chúng có thể chỉ có một CLR duy nhất và bạn gặp lỗi này.

+0

Để những người khác thấy điều này: Bạn có thể cố gắng giải quyết vấn đề này bằng cách cập nhật tham chiếu của bạn hội đồng thay vì yêu cầu khách hàng cài đặt CLR cũ hơn. Đồng nghiệp của tôi đang cập nhật dự án lên 4.5 và gặp sự cố này. Phản xạ đầu tiên của tôi là "bạn đã cập nhật gói nuget của mình chưa?" đảm bảo đủ.... –

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