Ctrl + K, Ctrl + C 선택영역 주석 처리
Ctrl + K, Ctrl + U 선택영역 주석 해제
Ctrl + L 라인 잘라내기
Ctrl + Shift + L 줄 삭제
Ctrl + Enter 현재 행 위에 행 추가하고 커서 이동
Ctrl + Shift + Enter 현재 행 아래에 행 추가하고 커서 이동
Ctrl + Tab 열려진 파일 선택창
Ctrl + Alt + PgDn 다음 탭
Ctrl + Alt + PgUp 이전 탭
Ctrl + K, Ctrl + D 코드 정렬
Ctrl + W 커서 위치 단어 선택
Alt + W, N 현재 파일 새 창
Alt + W, V 새 세로 문서 그룹
Alt + W, X 다음 문서 그룹으로 이동
Alt + W, R, R, Enter 이전 문서 그룹으로 이동
Ctrl + F4 현재 문서 닫기
Ctrl + F 현재 문서에서 텍스트 찾기
Ctrl + Shift + F 파일들에서 텍스트 찾기
Ctrl + Shift + T 파일로 이동
Ctrl + G 라인 이동
F12 정의로 이동
Ctrl + K, Ctrl + K 책갈피 생성/삭제
Ctrl + K, Ctrl + P 이전 책갈피
Ctrl + K, Ctrl + N 다음 책갈피
Ctrl + K, Ctrl + L 모든 책갈피 삭제
Ctrl + F4 문서 창 닫기
ctor + Tab + Tab 클래스 생성자 코드 작성
cw + Tab + Tab Console.WriteLine(); 코드 작성
Shift + Alt + Enter 전체 화면
Ctrl + R, Ctrl + R 현재 커서가 위치한 항목 이름 바꾸기
Ctrl + [, S 솔루션 탐색기에서 현재 문서로 이동

'프로그래밍 > C#' 카테고리의 다른 글

[C#] sqlite CRUD  (0) 2023.12.28
[C#] exe를 관리자 권한으로 실행하기 세팅  (0) 2023.12.22
[C#] Setup Project (Visual Studio 2022)  (0) 2023.11.21
[WPF] waml 파일 정렬 세팅  (1) 2023.11.20

개발 ide : Visual Studio 2022

프로젝트 템플릿 : Windows Forms 앱

 

Windows 앱을 만들면서 간단한 데이터 저장을 하려고 한다. mdb는 64비트 앱에서 문제가 있어 sqlite를 사용하려 한다.

 

NuGet 관리자로 Microsoft.Data.Sqlite.Core 패키지와 SQLitePCLRaw.bundle_e_sqlite3 패키지를 설치한다.

using (var connection = new SqliteConnection("Data Source=hello.db"))
{
    connection.Open();

    var command = connection.CreateCommand();
    command.CommandText = "SELECT name FROM sqlite_master WHERE name = 'user'";
    var name = command.ExecuteScalar();
    if (name == null || name.ToString() != "user")
    {
        command = connection.CreateCommand();
        command.CommandText = "CREATE TABLE user (id INT, name VARCHAR(20))";
        command.ExecuteNonQuery();

        command = connection.CreateCommand();
        command.CommandText = @"INSERT INTO user VALUES ($id, $name)";
        command.Parameters.AddWithValue("$id", "1");
        command.Parameters.AddWithValue("$name", "세종대왕");
        command.ExecuteNonQuery();
    }

    command = connection.CreateCommand();
    command.CommandText = @"INSERT INTO user VALUES ($id, $name)";
    command.Parameters.AddWithValue("$id", "2");
    command.Parameters.AddWithValue("$name", "홍길동");
    command.ExecuteNonQuery();

    command = connection.CreateCommand();
    command.CommandText = @"UPDATE user SET name = $name WHERE id = $id";
    command.Parameters.AddWithValue("$id", "2");
    command.Parameters.AddWithValue("$name", "이순신");
    command.ExecuteNonQuery();

    command = connection.CreateCommand();
    command.CommandText =
    @"
        SELECT name
        FROM user
        WHERE id = $id
    ";
    command.Parameters.AddWithValue("$id", "2");
    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            var name2 = reader.GetString(0);
            tb_name.Text = name2;
        }
    }

    command = connection.CreateCommand();
    command.CommandText = @"DELETE FROM user WHERE ID=$id";
    command.Parameters.AddWithValue("$id", "2");
    command.ExecuteNonQuery();

    connection.Close();
}

 

Sqlite를 연결하고 테이블 생성, 테이블 CRUD 소스를 실행한다.

DBeaver로 프로젝트 출력 폴더에 생성된 hello.db를 SQLite 연결로 열고, user 테이블을 확인하면 초기에 입력한 세종대왕 데이터가 보인다.

 

예제 소스

WinFormsApp3.zip
0.03MB

솔루션 탐색기 프로젝트에서 마우스 오른쪽 누르면 팝업메뉴가 나타난다.

팝업메뉴 > 추가 > 새 항목

새 항목 추가 팝업창이 나타난다.

애플리케이션 매니페스트 파일을 선택한다.

 

프로젝트.csproj 파일에 매니페스트가 자동으로 설정되어진다.

<PropertyGroup>
  <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>

 

app.menifest 파일에서

 

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

를 

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

로 수정한다.

'프로그래밍 > C#' 카테고리의 다른 글

[Visual Studio 2022] 내가 사용하는 단축키  (0) 2024.04.05
[C#] sqlite CRUD  (0) 2023.12.28
[C#] Setup Project (Visual Studio 2022)  (0) 2023.11.21
[WPF] waml 파일 정렬 세팅  (1) 2023.11.20

0. 개요

인스톨프로젝트를 만들어 배포파일(msi) 파일을 만들자.

 

1. Microsoft Visual Studio Installer Projects 2022  확장 설치

Visual Studio > 메뉴 > 확장 관리를 클릭한다.

 

확장 관리 팝업창 나타난다.

검색 텍스트박스에 install를 입력하면 목록이 갱신된다.

Microsoft Visual Studio Installer Projects 2022를 다운로드 버튼을 눌러 설치한다.

잠시 후 Visual Studio를 종료하면 설치한다는 메시지가 나온다.

Visual Studio를 종료하면 설치창이 나타난다.

설치가 끝나면 Visual Studio를 다시 시작한다.

 

2. SampleApp 프로젝트를 만들자

새 프로젝트 만들기 > Windows Forms 앱 (C#)

프로젝트 이름 : SampleApp

프레임워크 : .Net 7.0 (표준 용어 지원)

만들기 버튼 클릭

 

3. Debug, Release 버전 파일 추가

새 항목 추가 팝업창에서 텍스트 파일을 선택하고 이름 : SampleApp.ini를 입력한다. 추가 버튼을 누른다.

새 항목 추가 팝업창에서 텍스트 파일을 선택하고 이름 : SampleApp_release.ini 를 입력한다. 추가 버튼을 누른다.

 

- 프로젝트 폴더 > SampleApp.ini  ( Debug 용)

    - 속성 > 고급 > 출력 디렉터리로 복사 : 새 버전이면 복사

[SampleApp]
Mode=Debug

 

- 프로젝트 폴더>SampleApp_release.ini  ( Release 용)

    - 속성 > 고급 > 출력 디렉터리로 복사

[SampleApp]
Mode=Release

 

4. 빌드 후 이벤트 설정

프로젝트에서 마우스 오른쪽 버튼을 눌러 나오는 팝업메뉴에서 옵션을 선택한다.

 

프로젝트 속성창이 나타난다.

  - 프로젝트 속성창 > 빌드 > 이벤트 > 빌드 후 이벤트에 SampleApp_release.ini를 SampleApp.ini에 덮어씌우는 코드를 넣는다.

if $(ConfigurationName) == Release (
copy "$(SolutionDir)$(TargetName)\SampleApp_release.ini" "$(TargetDir)\SampleApp.ini"
)

 

5. 패키지 버전 설정

  - 프로젝트 속성창 > 패키지 > 일반 > 패키지 버전에 버전값을 입력한다.

0.5.0

 

4. 솔루션에 Setup Project 추가

새 프로젝트 추가 > Setup Project

프로젝트 이름 : SampleAppSetup

프로젝트 속성 창

Author : 회사명

Manufactorer : 회사명

ProductName : SampleApp

RemovePreviousVersions : True

TargetPlatform : x64

Title : Sample App

Version : 0.5.0

 

5. 파일 추가

파일 시스템 View > File System on Target Machine > Application Folder

- 오른쪽 영역에서 마우스 오른쪽 > 팝업 메뉴 > Add > 프로젝트 출력(P)...

프로젝트 출력 그룹 추가 팝업 창에서 

프로젝트(P) : 드롭다운에서 프로젝트 선택 (SampleApp)

확인 버튼을 누른다.

 

- 게시 항목 from SampleApp (Active)에서 마우스 오른쪽 > 팝업 메뉴 > Create Shortcut to 게시 항목 from SampleApp (Active)

Name : SampleApp으로 변경

File System on Target Machine > User's Desktop 폴더로 드래그드롭 하여 이동

 

- 오른쪽 영역에서 마우스 오른쪽 > 팝업 메뉴 > Add > File

SampleApp_release.ini 파일 선택

SampleApp_release.ini 파일 속성 > TargetName : SampleApp.ini로 변경

- 게시 항목 from SampleApp (Active) 속성창 > ExcludeFilter

Filter 창에서 Add Filter... 버튼을 누르고 New filter: 에 SampleApp.ini를 입력한다.

OK 버튼

OK 버튼

 

6. 프로젝트 속성 페이지

SampleAppSetup 프로젝트에서 마우스 오른쪽 > 팝업 메뉴> 속성

SampleAppSetup 속성 페이지 > Prerequisites... 버튼 클릭

 

설치할 필수 구성 요소 선택

Microsoft .Net Framework 4.7.2(x86 및 x64) : 체크 해제

.Net 데스크톱 런타임 7.0.12 (x64) : 체크

확인 버튼을 누른다.

 

출력 파일에 버전이름을 넣어준다.

구성(C) : Release

Output file name: Release\SampleAppSetup_0_5_0.msi

확인 버튼을 누른다.

 

7. 빌드

Visual Studio를 Release 모드로 수정한다.

 

SampleAppSetup 프로젝트에서 마우스 오른쪽 > 팝업 메뉴> 빌드 (또는 다시 빌드)

Release 폴더에 SampleAppSetup_0_5_0.msi 파일이 생성된다.

 

8. 예제 소스

https://github.com/humanjc/SampleApp

 

GitHub - humanjc/SampleApp: C# Setup Project example

C# Setup Project example. Contribute to humanjc/SampleApp development by creating an account on GitHub.

github.com

 

0. 개요

WPF waml 파일을 자동맞춤하기 위한 세팅을 한다.

 

1. Visual Studio > 메뉴 > 도구 > 옵션을 클릭한다.

옵션 팝업창이 나타난다.


2. 옵션창 왼쪽 트리뷰에서 텍스트 편집기 > XAML > Formatting > Spacing를 선택한다.

 

3. 아래와 같이 값을 세팅하고 확인 버튼을 누른다.
특성 간격
- 한 줄에 하나의 특성 배치(T) : 선택
- 첫 번째 특성을 시작 태그와 같은 줄에 배치(O) : 해제
요소 간격
- 콘턴츠의 여러 빈 줄을 한 줄로 축소(A) : 선택

 

4. 확인

waml 파일에서 Ctrl + K, Ctrl + D 를 눌러 자동 정렬을 한다.

+ Recent posts