eliasum
@eliasum
cd ..

Как Запустить приложение WinForms C# на другом компьютере без Visual Studio — C#?

Здравствуйте, уважаемые эксперты.
В Visual Studio 2015 создано приложение WinForms для вывода на дисплей изображения с ip-камер.
Необходимые библиотеки устанавливаются на комп с помощью спец софта для камер, отдельные необходимые dll лежат в папке с проектом. Требуемая версия .Net 4.
Microsoft Visual C++ 2005-2008-2010-2012-2013-2017 Redistributable Package Hybrid стоит.
Система Windows 8.1, х64.

На моем компе все прекрасно работает. Пытаюсь запустить .exe на целевой машине, где стоит .Net 4.5.2, Microsoft Visual C++ 2005-2008-2010-2012-2013-2015, система Windows 8, х64, софт ip-камер стоит. Программа вообще не хочет запускаться, даже никакой ошибки не выдает.

Я запустил на виртуальной машине систему Windows 8.1, х64, софт ip-камер стоит, Microsoft Visual C++ 2005-2008-2010-2012-2013-2017 Redistributable Package Hybrid стоит. При запуске экзешника вылетает ошибка

Сигнатура проблемы:
Имя события проблемы: CLR20r3
Сигнатура проблемы 01: Camcorder.exe
Сигнатура проблемы 02: 1.0.0.0
Сигнатура проблемы 03: 59f172d6
Сигнатура проблемы 04: Camcorder
Сигнатура проблемы 05: 1.0.0.0
Сигнатура проблемы 06: 59f172d6
Сигнатура проблемы 07: 1f
Сигнатура проблемы 08: 16
Сигнатура проблемы 09: System.DllNotFoundException
Версия ОС: 6.3.9600.2.0.0.256.48
Код языка: 1049
Дополнительные сведения 1: f73b
Дополнительные сведения 2: f73bba61db694b225255c1f07cd06508
Дополнительные сведения 3: b4e5
Дополнительные сведения 4: b4e5ef6bbc543bd1d0663422f4da4f89

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
go.microsoft.com/fwlink/?linkid=280262

Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt

Обработка исключений есть, ничего не отлавливается, даже это не помогает
public MainForm()
        {
            AppDomain currentDomain = AppDomain.CurrentDomain;
            currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler);
 
            // Добавить обработчик событий для обработки исключений потока пользовательского интерфейса
            Application.ThreadException += new ThreadExceptionEventHandler(Form1_UIThreadException);
        
           ..............
        }
 
        static void MyHandler(object sender, UnhandledExceptionEventArgs args)
        {
            Exception e = (Exception)args.ExceptionObject;
            Log.Write(e);
 
            MessageBox.Show("MyHandler caught : " + e.Message);
            MessageBox.Show("Runtime terminating: {0}", args.IsTerminating.ToString());
        }
 
        // Handle the UI exceptions by showing a dialog box, and asking the user whether
        // or not they wish to abort execution.
        private static void Form1_UIThreadException(object sender, ThreadExceptionEventArgs t)
        {
            DialogResult result = DialogResult.Cancel;
            try
            {
                result = ShowThreadExceptionDialog("Windows Forms Error", t.Exception);
            }
            catch
            {
                try
                {
                    MessageBox.Show("Fatal Windows Forms Error",
                        "Fatal Windows Forms Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Stop);
                }
                finally
                {
                    Application.Exit();
                }
            }
 
            // Exits the program when the user clicks Abort.
            if (result == DialogResult.Abort)
                Application.Exit();
        }
 
        // Creates the error message and displays it.
        private static DialogResult ShowThreadExceptionDialog(string title, Exception e)
        {
            string errorMsg = "An application error occurred. Please contact the adminstrator " +
                "with the following information:\n\n";
            errorMsg = errorMsg + e.Message + "\n\nStack Trace:\n" + e.StackTrace;
            return MessageBox.Show(errorMsg, title, MessageBoxButtons.AbortRetryIgnore,
                MessageBoxIcon.Stop);
        }


Помогите решить проблему.
  • Вопрос задан
  • 3929 просмотров
Решения вопроса 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Не хватает Dll какой то, как выше сказали, Procmon или из студии сделаете публикацию проекта, при этом все необходимые Dll опубликуются с исполняемым файлом.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
1. Установить все обновления.
2. Поставить самую свежую версию DotNet.
3. На всякий случай проверить систему sfc /scannnow
4. Используя Procmon.exe выяснить какой именно DLL не хватает и исправить.
Ответ написан
@BashkaMen
C# программист
Все что находится в папке debug нужно программе, потому передавай папку debug
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы