본문 바로가기
카테고리 없음

C# DLL 라이브러리 포함 EXE 배포

by AJAX하고싶다 2023. 3. 1.
반응형

C# 윈폼 환경에서 DLL라이브러리를 포함한 EXE 실행파일을 배포하는 방법을 공유한다. 테스트 진행은 MYSQL DB 연결에 사용하는 DLL 라이브러리를 포함하는 것으로 진행한다.

 

 

1. C# DLL 환경 구축

C# 윈폼 프로젝트를 생성한 후 MYSQL 연결 DLL을 설치 한 후 설치된 DLL의 셋팅을 진행한다.

 

1 - 1 . C# 윈폼 환경 프로젝트를 생성한다.

C# 프로젝트 생성

 

 

1 - 2. 생성된 프로젝트의 버튼을 생성한다.

C# 윈폼 버튼 생성

 

1 - 3.  [ 프로젝트 ] - [ NuGet 패키지 관리 ] 진입한다.

C# NuGet 패키지 화면

 

 

1 - 4. 테스트를 위해 MYSQL.DATA 라이브러리를 설치한다.

C# NuGet 패키지 Mysql 검색화면

 

 

1 - 5. 라이브러리를 설치한 후 실행파일 폴더에 위치된 DLL ( Ex. Mysql.Data.dll) 파일을 솔루션 프로젝트에 끌어서 삽입한다.

C# 디버그 폴더

 

1 - 6. 프로젝트에 추가된 DLL 파일을 확인한다.

C# 디버그폴더 Mysql 라이브러리 선택

1 - 7. [ NuGet 패키지 관리 ] 를 통해 설치된 Mysql.Data 라이브러리를 [ 로컬복사 : false ] 상태로 변경한다.

C# Mysql 라이브러리 셋팅

 

 

 

1 - 8. 프로젝트에 dll파일을 끌어서 생성된 라이브러리 파일은 아래와 같이 변경한다.

[ 빌드작업 : 포함리소스 ] , [ 출력 디렉토리에 복사 : 복사 안함 ] 

C# Mysql.Data DLL

 

 

 

2. 버튼클릭이벤트 작성.

DLL 라이브러리 셋팅을 완료한 후 아래와 같이 C# 윈폼 코드를 작성한다.

using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            DB_CONN_CHK_MYSQL();

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            return;
        }
        MessageBox.Show("연결");
    }



    public string DB_IP;
    public string DB_PORT;
    public string DB_NAME;
    public string DB_ID;
    public string DB_PW;

    public Boolean db_conn = false;

    public static MySqlConnection mySqlConnection;
    
    //MYSQL 연결
    public void DB_CONN_CHK_MYSQL()
    {
        DB_IP = "127.0.0.1";
        DB_PORT = "3306";
        DB_NAME = "testdb";

        DB_ID = "abc";
        DB_PW = "abc123";

        //DB_연결안됨
        if (db_conn == false)
        {
            string sql_str = "Server=" + DB_IP + ";port=" + DB_PORT + ";Database=" + DB_NAME + ";Uid=" + DB_ID + ";Pwd=" + DB_PW + ";";
            mySqlConnection = new MySqlConnection(sql_str);

            try
            {
                mySqlConnection.Open();
                db_conn = true;
                return;
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            {
                mySqlConnection.Close();
                db_conn = false;
            }

        }

        //DB_연결됨
        else
        {
            //현재 연결중인지 확인
            try
            {
                string sql_str = "select now()";
                MySqlCommand sql_cmd = new MySqlCommand(sql_str, mySqlConnection);
                MySqlDataReader rs1 = sql_cmd.ExecuteReader();
                rs1.Close();

                return;
            }
            catch
            {
                db_conn = false;
                DB_CONN_CHK_MYSQL();
            }
        }
    }
}

 

 

이후 프로젝트 빌드를 진행한 후 실행파일을 배포하여 사용한다.

 

반응형

댓글