C # windows application Событие: CLR20r3 при запуске приложения - PullRequest
23 голосов
/ 12 февраля 2012

Я создал приложение C # и установил его на свой тестовый ящик. Мое приложение отлично работает на моем компьютере разработчика, но когда я устанавливаю его на другой компьютер, оно вылетает в Main (). Я получаю EventType: CLR20r3

вот сообщение о событии

    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

Я использовал детали и посмотрел код ошибки в IL Disassembler и снова отправил сообщение со следующим ...

    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 был удален и переустановлен в системе и ничего не изменил. Я искал по всей сети, и у всех с той же проблемой, кажется, нет решения. Сейчас я потратил полтора дня на эту проблему. Я не хотел бы пропустить мой крайний срок из-за невозможности запустить приложение.

Это единственный код в моем Main ()

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

Вот подробности из 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() 

Не уверен, как дизайнер может иметь исключение FileNotFound. Я использую DotNetBar.dll и ссылаюсь на него из каталога установки, так что это должно быть хорошо. Я могу опубликовать свой дизайнер, если хотите, но там немало.

Ответы [ 5 ]

21 голосов
/ 12 февраля 2012

Я видел такую ​​же проблему, когда мое приложение зависело от ссылочной сборки, которой не было на компьютере развертывания. Я не уверен, что вы подразумеваете под "ссылкой на DotNetBar из каталога установки" - убедитесь, что он установлен на CopyLocal = true в вашем проекте или существует по одному и тому же полному пути как в вашей разработке, так и в производстве машина.

3 голосов
/ 16 декабря 2015

.NET имеет две CLR 2.0 и 4.0.CLR 2.0 работает до .NET Framework 3.5.CLR 4.0 работает с .NET 4.0 и выше.Вполне возможно, что ваше решение использует другой CLR, чем ваши эталонные сборки.В вашей локальной среде разработки у вас могут быть оба CLR, и, следовательно, вы не столкнулись ни с какой проблемой.Однако, когда вы перешли в среды развертывания, у них может быть только один CLR, и вы получили эту ошибку.

3 голосов
/ 22 мая 2014

Я столкнулся с той же проблемой, когда создавал приложение на Windows 7, которое ранее поддерживалось на компьютере с XP.

Программа работала нормально при сборке для отладки, но не с этой ошибкой при сборкедля выпуска.Я нашел ответ на странице свойств проекта.Перейдите на вкладку «Сборка» и попробуйте изменить цель платформы с «Любой процессор» на «x86».

0 голосов
/ 09 июня 2015

Для решения поставленной задачи CLR20r3 - Local User Policy \ Computer Configuration \ Windows Settings \ Security Settings \ Local Policies \ Security Options - System cryptography: Используйте FIPS 140-совместимые криптографические алгоритмы, включая шифрование, хеширование и подпись - Отключить

0 голосов
/ 21 ноября 2012

Бились с этим все утро, а теперь решили и почему это произошло. Опубликовать с надеждой, что это поможет другим

Я установил Krypton.Toolkit, который автоматически добавил инструменты в набор инструментов Visual Studio. Затем я добавил инструменты в конструктор, который автоматически добавил dll к ссылкам проекта, однако набор инструментов был помечен как CopyLocal = false

Я собрал установщик, используя все dll в папке сборки выпуска (конечно, вышеупомянутой dll там не было).

Установка copylocal = true, затем пересборка установщика, все работало нормально.

...