전체 글
[C#] 알림창 만들기 (Notices)
c# winform 개발 중 알림창 띄우는 방식을 기록해본다. "GUI" "작동 시나리오" 1. 상위버전으로 게시하면, 프로그램 실행 시 무조건 띄움. 2. 동일버전 사용 중에는 사용자가 [다음 업데이트까지 보지 않겠습니다.] 를 선택하기 전까지는 실행시마다 띄움. 단, 해당 체크박스를 선택하면 동일버전 중에서는 알림창 띄우지 않음. "속성값" NoticeShow : 사용자가 알림창 보지않음을 선택한 값 (boolean) Version : 해당 프로그램의 빌드 버전 (int) "구현" if (AssemblyVersion.Build != Properties.Settings.Default.Version) { Properties.Settings.Default["Version"] = Assembl..
[C#] ClickOnce 게시 파일 실행 시 설치 버튼 없는 현상
ClickOnce 게시 후 설치 시 설치 버튼 없는 현상 (Unable to install ClickOnce application) 아래와 같은 현상일때, 해결 방법 시작- 실행 (윈도우키+C ) - regedit 진입 아래 경로 진입 시 컴퓨터\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\TrustManager\PromptingLevel 이와 같이 보임. Disabled > Enable로 변경 변경 후 설치파일 재실행 시 정상적으로 설치 버튼이 보여짐. 성공 !!
[C#] 크로스 스레드 작업이 잘못되었습니다. 해결 방법
VB 나 C# 으로 스레드 및 폼 작업을 하다보면 아래와 같은 현상을 종종 만날 수 있다! [ System.InvalidOperationException ] 원인 : 공통으로 사용하는 오브젝트에 스레드들이 접근하게끔 프로그래밍이 되어 있어 발생하는 오류 (다른 스레드에서 컨트롤에 접근하려 할 때, 예외 발생 !!) 해결 방법 : 1) Delegate 와 Invoke를 따로 선언하고 호출해줌 ... (http://msdn.microsoft.com/ko-kr/library/ms171728(v=vs.100).aspx) 2) BackgroundWorker 로 다중 스레딩 사용 ( 상위와 동일 ) 3) "CheckForIllegalCrossThreadCalls = False" 지정 (임시방편, 크로스 스레드 오류..
[C#] Outlook OLE 객체 생성 오류(CO_E_SERVER_EXEC_FAILURE)
사무 자동화 프로그램 제작하여 배포를 하였는데, 특정 PC 메일 보내기 기능에서만 아래와 같은 Outlook 객체 생성 오류가 발생되었다. CO_E_SERVER_EXEC_FAILURE 오류 팝업 우선적으로, 문제되고 있는 PC들에서 CLSID를 호출해보았더니, // Outlook CLSID Type.GetTypeFromCLSID(new Guid("0006F03A-0000-0000-C000-000000000046")); 실제 사용 및 계정이 연동되어 있는 Outlook은 2013 인데, pc에 Default로 설치되어 있던 Outllook 2015 체험판이 올라왔다. 해당 pc 내에 Office 여러개가 있으면 해당 문제가 발생되는 것으로 보여진다. (Office bit는 무관하다.) 결국엔 사..
[C#] ClickOnce 배포에 사용할 개인키 만들기 (만료 기간 길게 설정)
1. Windows 10 SDK 설치 developer.microsoft.com Microsoft Developer developer.microsoft.com 2. C:\Program Files (x86)\Windows Kits\10\bin 내에 설치된 makecert.exe 파일 위치에서 Command 창 띄움 3. 하위 명령어 입력 (CN = 키이름 , 09/20/2018 시작일, 12/31/2040 만료일) makecert.exe -r -pe -n "CN=TEST_key" -b 09/20/2018 -e 12/31/2040 -sky exchange -ss my Succeeded 확인 후 다음 진행 4. Visual Studio에서 서명 ClickOnce Enable 후 저장소에서 선택하여, 개인 키 ..
[C#] MySQL DB를 DataSet으로 담기
MySQL DB를 DataSet에 담는 코드입니다. using MySql.Data.MySqlClient; private DataSet ds = new DataSet(); private string SQLConnStr = "Server=127.0.0.1;Uid=root;Pwd=****;Database=db"; public DataSet GetDataSet(string ConnectionString, string SQL, string ds_table) { MySqlConnection conn = new MySqlConnection(ConnectionString); MySqlDataAdapter da = new MySqlDataAdapter(); MySqlCommand cmd = conn.CreateComma..