본문 바로가기

C# & .NET

(14)
c# library for docker # libraries for .NET in github.com https://github.com/dotnet # Docker images for .NET and the .NET Tools dotnet-docker : https://github.com/dotnet/dotnet-docker # Creating an Docker image Testcontainers for .NET : https://dotnet.testcontainers.org/api/create_docker_image/ # .NET (C#) Client Library for Docker Remote API Docker.DotNet : https://github.com/dotnet/Docker.DotNet # native Git impleme..
.NET Compact Framework 에는 GraphicsPath, Region 이 없다... .NET Compact Framework 에는 GraphicsPath, Region 이 없다... 그래서 다양한 모양의 컨트롤을 만들 방법이 없다... 혹시 .NET Compact Framework 를 사용해서 별모양, 원모양의 컨트롤(버튼)을 만드는 방법에 대해서 아시는분... 신고 바람...
ClickOnce 배포 프로그램 이름 변경하기 최초에 OneInstanceAndParameterExecute 라는 이름으로 솔루션 및 프로젝트가 개발되었다고 가정한다. 이 프로젝트의 기본 namespace 는 솔루션 및 프로젝트 이름과 동일한 OneInstanceAndParameterExecute일 것이다. 이 상태로 게시했다면 배포되는 프로그램의 이름은 OneInstanceAndParameterExecute 이 될 것이다. 위 그림에서 볼 수 있는 woohaha 는 게시자 이름으로 입력한 woohaha 이고 OneInstanceAndParameterExecute 는 제품 이름으로 입력한 값이다. 차후에 프로그램 이름을 변경하고자 한다면 다음 과정을 거친다. 게시자 이름을 적절히 변경한다. 여기에서는 MyCompany 라고 수정했다. 제품 이름을 적..
오직 한 번만 실행되는 프로그램 - 이미 실행중인 프로그램에 데이터 전달하기 [오직 한 번만 실행되는 프로그램] 뮤텍스를 사용하는 원리 프로그램의 메인 폼을 실행시키기 전에 이미 실행되고 있는 프로그램의 인스턴스가 존재하는지를 확인해야 함. Program Class의 Main 함수에서 확인. [STAThread] static void Main() { // 이미 프로그램 인스턴스가 존재하는 경우 프로그램 종료 if (IsExistAnotherInstance()) return; // 프로그램 종료 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } private static bool IsExistAnotherInstance..
IE 7 User-Agent String 버그 [설치된 .NET Framework 알아오기]라는 제목의 포스팅에서 웹브라우저가 서버로 전달하기 위해서 작성하는 User-Agent 문자열로부터 사용자 시스템에 설치되어 있는 .NET Framework 버전을 확인하는 방법을 설명한 바 있다. 본인은 웹브라우저로 IE 7 과 파이어폭스 3.x 버전을 사용중인데, 언제부터인가 IE 7 에서 시스템에 설치되어 있는 .NET Framework 버전 정보를 구해내질 못하고 있었다.(파이어폭스에서는 문제없었다) 구글링한 결과 다음과 같은 참고 URL을 얻을 수 있었다. [An IE7 Bug That Returns MSIE 6.0 User Agent String] (http://jamazon.co.uk/web/2008/07/23/an-ie7-bug-that-retu..
C# 어플리케이션과 C++ 어플리케이션간의 혼합 디버깅 방법 Visual Studio 2008 을 기준으로 한 C# 어플리케이션과 C++ 어플리케이션간 혼합 디버깅 방법 C# 어플리케이션이 C++로 개발한 DLL을 로딩하는 경우 두 언어 소스를 Step by step 으로 이동해가면서 디버깅을 하려면 다음과 같이 설정한다. C# 어플리케이션 프로젝트 속성 C++ 어플리케이션 프로젝트 속성
.NET WinForm 의 DeviceContext 구하기 .NET에서는 윈도우에 그리기를 할 때 GDI+ 를 사용한다. GDI+ 에서 특정 device context에 출력하는 기능은 Graphics 클래스를 사용한다. 반면에 Visual C++ 에서는 GDI를 기본적으로 사용하며 CDC 클래스를 사용하여 그리기를 수행한다. .NET WinForm 프로그램과 Visual C++ 프로그램간에 device context 를 주고받아야 할 필요성이 있을 경우에는 device context 핸들을 구하여 전달하면 된다. .NET WinForm 프로그램에서 device context 핸들은 다음과 같이 구한다. Graphics g = CreateGraphics(); IntPtr hDC = g.GetHdc(); .NET WinForm 의 device context 핸들 ..
ClickOnce 배포서버로 리눅스 서버 사용시 주의사항 ClickOnce 배포방법은 .NET Framework 에서 지원하는 온라인/오프라인 배포방법이다. 설치에 필요한 파일들을 서버에 올려두고 웹페이지를 통해서 클라이언트 사용자들이 프로그램을 설치/실행시킬 수 있도록 하는 아주 유용하고 쉬운 방법이다. 그런데, ClickOnce 배포서버로 리눅스 서버를 사용한다면... 이전 포스트에서 리눅스 서버를 ClickOnce 배포서버로 사용시 발생하는 문제점 몇 가지에 대해서 언급한 바 있다. 이번 포스트에서는 ClickOnce 로 배포하는 프로젝트의 구성요소 배포시 발생하는 문제점의 해결방법을 제시하고자 한다. 상황: 구성요소(예를 들어 .NET Framework 3.x, Visual C++ 런타임 라이브러리 등) 설치 진행 중 구성요소 설치에 필요한 파일을 다운..