즐겁게 개발을...

개발보다 게임이 더 많이 올라오는 것 같은...

개발/C# 37

[2022.10] 형식 이니셜라이저에서 예외를 Throw했습니다.

'Npgsql.TypeMapping.BuiltInTypeHandlerResolver'의 형식 이니셜라이저에서 예외를 Throw했습니다. 오늘은 이런 오류가 발생했을 때 조치사항을 알아보겠습니다. 본 사례에 대한 내용을 먼저 설명드립니다. 제품의 솔루션이 따로 있었고, A도구 프로젝트를 별개로 개발했습니다. Json파일 역직렬화를 위해 System.text.json을 Nuget으로 설치했는데 솔루션의 버전을 확인하지 않고 최신 안정화 버전인 6.0.0.6으로 개발을 진행했죠. 솔루션의 DLL을 참조하다가 DLL프로젝트에서 자꾸 오류가 나서 솔루션에 A도구 프로젝트를 병합했습니다. 그때부터 다른 프로그램들이 맨 위에 저 오류를 내 뿜으면서 동작하지 않는 현상이 발생하기 시작합니다. A도구는 별도 경로를 가진..

개발/C# 2022.10.24

[2022.09] UTC시간을 현재 시간으로 변환하는 구문

예전에는 이런 문제가 없었던 것 같은데 신기하네요. 저는 Postgresql DB를 사용하고 있습니다. DBMS 도구인 pg-admin에서 조회하면 현재시간으로 잘 나옵니다. 그런데 C#에서 Dapper를 이용해 쿼리하면 9시간이 빠진 UTC시간으로 조회되어 나옵니다. Postgresql의 연결객체에 Timezone을 설정하는 건지 아니면 Dapper에 처리하는 건지 찾아봐도 나오지 않아 그냥 가져와서 변환하는 방법을 택했습니다. (이 부분 아시는 분 알려주세요. T_T) TimeZone.CurrentTimeZone.ToLocalTime(DateTime.Parse(item.RunAt)).ToString("yyyy-MM-dd HH:mm:ss") Timezone이라는 클래스를 이용하는 방식입니다.

개발/C# 2022.09.30

[2022.09] 버전 관리의 고찰

기본 프로젝트를 생성하면 "1.0.0.0"으로 빌드된다. 차례대로 Major, Minor, Build, Revision이라는데 예전 VB 6.0 시절로 되돌아가면 빌드할 때마다 리비전 번호를 자동 증가시켜서 빌드할 때마다 아무짓 하지 않아도 배포될 때 해당 리비전 이력만 관리하면 됐었는데 요즘 VS에서는 안된다. [C#] Version 자동 설정 및 BuildDateTime 구하기 Assembly의 Build된 일시를 구하기 위한 방법을 설명 드립니다. 먼저 [Properties] 폴더에 [AssemblyInf.cs]를 엽니다. 다음과 같은 부분을 찾습니다. 보통 최 하단에 위치하고 있습니다. // You can specify all.. nsinc.tistory.com 요런 게 있다. 프로젝트 밑에 Pr..

개발/C# 2022.09.29

[2022.09] 이중실행 방지

사용자 실수로 인해 두번이상 실행을 막는 구문입니다. 자세한 내용은 주석을 참고해주세요. // 클래스 밖에서 선언해주세요. [DllImport("user32.dll")] public static extern bool IsIconic(IntPtr hWnd); [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); [DllImport("user32.dll")] public static extern bool SetForegroundWindow(IntPtr hWnd); public static int SW_RESTORE = 9; // Program.cs 메인함수 내에 추가해주세요. 메인폼 들어가기..

개발/C# 2022.09.26

[2022.09] 현재 경로 가져오기 고찰

보통 현재폴더를 가져올 때 Directory클래스의 GetDirectoryName()을 이용해서 가져왔습니다. 탐색기에서 직접 실행하면 정상적으로 현재 폴더를 가져옵니다만, 다른 폴더에 있는 프로세스에 의해서 WorkingDirectory를 지정하지 않고 실행될 경우 Current Directory는 그 다른 프로세스의 경로가 현재경로가 되어 위 함수로는 현재폴더를 가져올 수 없습니다. string CurPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); 위 구문으로 해야 정상적으로 현재폴더를 가져올 수 있습니다.

개발/C# 2022.09.26
1 2 3 4 5 6 7 8