Событие c# Windows appication: CLR20r3 при запуске приложения


Итак, я создал приложение c# и установил его на свой тестовый блок. Мое приложение отлично работает на моем dev box, но когда я устанавливаю его на другой машине, оно падает в Main (). Я получаю тип события: 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 и cam обратно со следующим...

    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());
    }

Вот подробности из программы просмотра событий

    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 23

5 ответов:

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

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

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

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

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

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

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

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

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