E
E
eliasum2017-10-26 13:15:13
Windows
eliasum, 2017-10-26 13:15:13

How to run a WinForms C# application on another computer without Visual Studio - C#?

Hello dear experts.
In Visual Studio 2015, a WinForms application was created to display images from ip cameras.
The necessary libraries are installed on the computer using special software for cameras, some of the necessary dlls are in the project folder. Requires .Net version 4.
Microsoft Visual C++ 2005-2008-2010-2012-2013-2017 Redistributable Package Hybrid costs.
Windows 8.1, x64 system.
Everything works great on my computer. I'm trying to run an .exe on a target machine with .Net 4.5.2, Microsoft Visual C++ 2005-2008-2010-2012-2013-2015, Windows 8, x64, ip-camera software. The program does not want to start at all, it does not even give any error.
I ran a Windows 8.1, x64 system on a virtual machine, the ip-camera software is installed, Microsoft Visual C ++ 2005-2008-2010-2012-2013-2017 Redistributable Package Hybrid is installed. When launching the executable, an error occurs Problem
Signature
: Problem Event Name: CLR20r3 Problem
Signature 01: Camcorder.exe
Problem Signature 02: 1.0.0.0
Problem Signature 03: 59f172d6 Problem
Signature 04: Camcorder
Problem Signature 05: 1.0.0.0
Problem Signature 06: 59f172d6
Signature Problem 07:1f
Problem Signature 08:16
Problem Signature 09: System.DllNotFoundException
OS Version: 6.3.9600.2.0.0.256.48
Language Code: 1049
Additional Information 1: f73b
Additional information 2: f73bba61db694b225255c1f07cd06508
Additional information 3: b4e5
Additional information 4: b4e5ef6bbc543bd1d0663422f4da4f89 View the
online privacy statement:
go.microsoft.com/fwlink/?linkid=280262
If the online privacy statement is not available, please see its local
:\Windows\system32\ru-RU\erofflps.txt Exception
handling is present, nothing is caught, even this does not help

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

Help solve the problem.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
R
Roman, 2017-10-26
@eliasum

Some kind of Dll is missing, as they said above, Procmon or from the studio will publish the project, while all the necessary Dlls will be published with the executable file.

V
VoidVolker, 2017-10-26
@VoidVolker

1. Install all updates.
2. Install the latest version of DotNet.
3. Just in case, check the system sfc /scannnow
4. Using Procmon.exe, find out which DLL is missing and fix it.

D
Dmitry Bashinsky, 2017-10-27
@BashkaMen

Everything that is in the debug folder is needed by the program, so pass the debug folder

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question