<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>DexCore.Net</title>
    <link>https://dexcore.tistory.com/</link>
    <description>♤♤♤♤♤♤ 소리소문 없이...
사랑도 명예도 이름도 남김 없이..
</description>
    <language>ko</language>
    <pubDate>Fri, 10 Apr 2026 04:01:09 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>탑~!</managingEditor>
    <image>
      <title>DexCore.Net</title>
      <url>https://tistory1.daumcdn.net/tistory/176601/attach/89877685f9314c40be6ad75591d92ef6</url>
      <link>https://dexcore.tistory.com</link>
    </image>
    <item>
      <title>시작 프로그램 실행시 사용자 계정 컨트롤(UAC) 뜨지 않게 설정하는 방법</title>
      <link>https://dexcore.tistory.com/1043</link>
      <description>&lt;h2 style=&quot;background-color: #ffffff; color: #54150c; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;사용자 계정 컨트롤이 뜨는 시작 프로그램&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;최근 새 조립 PC를 만들면서 그래픽 카드를 GTX1660Ti로 선택했습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;10년 이상 노트북만 사용하다보니 별도의 그래픽 카드를 구입한 것도 10년은 훌쩍 넘었는데, 제가 구입한 GTX1660Ti 그래픽카드는 그래픽 카드의 오버클럭 설정 및 각종 상태 확인, 온도에 따른 쿨러 설정 등의 역할을 담당하는 프로그램이 들어 있었습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;평소 이런류의 프로그램은 번거롭다는 생각 때문에 거의 설치하지 않는 편인데, 아무래도 냉각팬 속도 조절 등의 기능을 쓰려다보니 결국 프로그램을 설치해 사용 중입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다만 하드웨어 모니터링과 제어를 담당하는 프로그램이다보니 실행할 때마다 사용자 계정 컨트롤(UAC) 화면이 떠서 [예] 버튼을 클릭해야하고, 시스템 시작 프로그램으로 사용하다보니 매번&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;컴퓨터를 부팅하는 도중에 사용자 계정 컨트롤&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;화면이 뜨는게 번거롭습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lsldi/dJMcaaq8g54/GqZzpH30SMajKfS80aSfmK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lsldi/dJMcaaq8g54/GqZzpH30SMajKfS80aSfmK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lsldi/dJMcaaq8g54/GqZzpH30SMajKfS80aSfmK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flsldi%2FdJMcaaq8g54%2FGqZzpH30SMajKfS80aSfmK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;시작 프로그램 기능은 사용하면서, 사용자 계정 컨트롤 화면이 뜨지 않도록 하는 방법은 없을까, 잠깐 생각해 봤습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;가장 먼저 생각나는 방법이 시작 프로그램 폴더에 관리자 권한으로 넣어두는 방법이었습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 문제의(?) 프로그램은 프로그램 설정에서 윈도우 시작시 실행되도록 설정하는데, 이 자동 실행 옵션을 끄고&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b83rBg/dJMcaaq8g52/MHZHsTseNy607bGg8VaJA0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b83rBg/dJMcaaq8g52/MHZHsTseNy607bGg8VaJA0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b83rBg/dJMcaaq8g52/MHZHsTseNy607bGg8VaJA0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb83rBg%2FdJMcaaq8g52%2FMHZHsTseNy607bGg8VaJA0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;윈도우&lt;span&gt;&amp;nbsp;&lt;/span&gt;+&lt;span&gt;&amp;nbsp;&lt;/span&gt;R&lt;span&gt;&amp;nbsp;&lt;/span&gt;키를 누른 뒤 뜨는 [실행] 창에 shell:startup 이라고 입력한 뒤 뜨는 시작 프로그램 폴더에 프로그램의 단축 아이콘을 끌어다 놓았습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ml6DO/dJMcaduyjUw/oYgW9eKOnPgBXOjjmEQbf0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ml6DO/dJMcaduyjUw/oYgW9eKOnPgBXOjjmEQbf0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ml6DO/dJMcaduyjUw/oYgW9eKOnPgBXOjjmEQbf0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fml6DO%2FdJMcaduyjUw%2FoYgW9eKOnPgBXOjjmEQbf0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 프로그램 단축 아이콘에서 마우스 오른쪽 버튼을 클릭해 [속성]을 선택한 뒤 [호환성] 탭을 클릭하고 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;관리자 권한으로 이 프로그램 실행&lt;/span&gt;&lt;/b&gt;] 항목을 체크했습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;간단히 말하면, 해당 프로그램의 단축 아이콘에 [관리자 권한으로 이 프로그램 실행] 옵션을 설정하고 시작 프로그램으로 실행하려던 계획이었는데,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;실제로는 이런 방법이 먹히질 않았습니다&lt;/span&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;검색을 해보니 사용자 계정 컨트롤이 뜨는 프로그램은 시작 프로그램 폴더에 넣을 때 제약 사항이 있다는군요.&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #54150c; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;작업스케줄러를 이용한 UAC 시작 프로그램 설정&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 다음으로 시도해 본 것이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;작업 스케줄러를 이용해 시작 프로그램으로 실행&lt;/span&gt;&lt;/b&gt;하는 것인데, 다행히 이 방법은 원하던대로 잘 실행되었습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;일단 작업 스케줄러를 실행해야 하는데, 검색창에 [작업]이라고 입력한 뒤 뜨는 작업 스케줄러를 실행하거나&amp;nbsp;윈도우&lt;span&gt;&amp;nbsp;&lt;/span&gt;+&lt;span&gt;&amp;nbsp;&lt;/span&gt;R&lt;span&gt;&amp;nbsp;&lt;/span&gt;키를 누른 뒤 뜨는 [실행] 창에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;control schedtasks&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 입력합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ak3pw/dJMcadBi0pV/CTRHkyZ4CrFNmO7CqbkjO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ak3pw/dJMcadBi0pV/CTRHkyZ4CrFNmO7CqbkjO1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ak3pw/dJMcadBi0pV/CTRHkyZ4CrFNmO7CqbkjO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAk3pw%2FdJMcadBi0pV%2FCTRHkyZ4CrFNmO7CqbkjO1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;작업 스케줄러가 뜨면 오른쪽 목록에서 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;작업 만들기&lt;/span&gt;&lt;/b&gt;]를 클릭하고&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOCZdn/dJMcaaq8g55/NJ7eWsx400pK36a81wLly0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOCZdn/dJMcaaq8g55/NJ7eWsx400pK36a81wLly0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOCZdn/dJMcaaq8g55/NJ7eWsx400pK36a81wLly0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOCZdn%2FdJMcaaq8g55%2FNJ7eWsx400pK36a81wLly0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;일반&lt;/span&gt;&lt;/b&gt;] 탭의 이름 항목에 적당한 이름을 적어준 뒤 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;가장 높은 수준의 권한으로 실행&lt;/span&gt;&lt;/b&gt;] 항목을 체크합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAxn5T/dJMcadBi0p9/B8bq4PpW69xywHrjUK8wN1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAxn5T/dJMcadBi0p9/B8bq4PpW69xywHrjUK8wN1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAxn5T/dJMcadBi0p9/B8bq4PpW69xywHrjUK8wN1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAxn5T%2FdJMcadBi0p9%2FB8bq4PpW69xywHrjUK8wN1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;트리거&lt;/span&gt;&lt;/b&gt;] 탭을 클릭한 뒤 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;새로 만들기&lt;/span&gt;&lt;/b&gt;] 버튼을 클릭하고&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OEyVT/dJMcaaq8g53/Q21x6LKPyvMWCGYN17H7bK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OEyVT/dJMcaaq8g53/Q21x6LKPyvMWCGYN17H7bK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OEyVT/dJMcaaq8g53/Q21x6LKPyvMWCGYN17H7bK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOEyVT%2FdJMcaaq8g53%2FQ21x6LKPyvMWCGYN17H7bK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;작업 시작&lt;/span&gt;&lt;/b&gt;] 항목을 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;로그온 할 때&lt;/span&gt;&lt;/b&gt;]로 설정한 뒤 [확인] 버튼을 클릭합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rKcyg/dJMcaduyjUt/sOemZdJPPpQstsQHkUEZG0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rKcyg/dJMcaduyjUt/sOemZdJPPpQstsQHkUEZG0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rKcyg/dJMcaduyjUt/sOemZdJPPpQstsQHkUEZG0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrKcyg%2FdJMcaduyjUt%2FsOemZdJPPpQstsQHkUEZG0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이제 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;동작&lt;/span&gt;&lt;/b&gt;] 탭에서 [새로 만들기] 버튼을 클릭하고&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfXwsJ/dJMcaduyjUr/WSfIRazw893hxwB4b9duJ1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfXwsJ/dJMcaduyjUr/WSfIRazw893hxwB4b9duJ1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfXwsJ/dJMcaduyjUr/WSfIRazw893hxwB4b9duJ1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfXwsJ%2FdJMcaduyjUr%2FWSfIRazw893hxwB4b9duJ1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[동작] 항목을 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;프로그램 시작&lt;/span&gt;&lt;/b&gt;]으로 설정한 뒤 [프로그램/스크립트] 항목에 실행할&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;프로그램의 경로를 설정&lt;/span&gt;&lt;/b&gt;합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YxUU8/dJMcadBi0p6/prqWKWFbjfAqe0eXi3xbi0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YxUU8/dJMcadBi0p6/prqWKWFbjfAqe0eXi3xbi0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YxUU8/dJMcadBi0p6/prqWKWFbjfAqe0eXi3xbi0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYxUU8%2FdJMcadBi0p6%2FprqWKWFbjfAqe0eXi3xbi0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;사용할 프로그램의 경로는 프로그램의 아이콘에서 마우스 오른쪽 버튼을 클릭 한 뒤 [속성] 항목을 선택하고&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZQiVq/dJMcaivTcuB/QhTVH5vzKf4UkqBCGLkmek/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZQiVq/dJMcaivTcuB/QhTVH5vzKf4UkqBCGLkmek/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZQiVq/dJMcaivTcuB/QhTVH5vzKf4UkqBCGLkmek/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZQiVq%2FdJMcaivTcuB%2FQhTVH5vzKf4UkqBCGLkmek%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[바로 가기] 속성에서 [대상]과 [시작 위치] 항목을 복사해 사용하면 됩니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AnFwH/dJMcaivTcuz/z4kkSloRVetrcMepjRc2K0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AnFwH/dJMcaivTcuz/z4kkSloRVetrcMepjRc2K0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AnFwH/dJMcaivTcuz/z4kkSloRVetrcMepjRc2K0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAnFwH%2FdJMcaivTcuz%2Fz4kkSloRVetrcMepjRc2K0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[동작] 탭의 설정이 끝나면 [확인] 버튼을 클릭해 창을 닫고&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9egde/dJMcaduyjUp/jtQZH1KBDD5ZyaYqKH0HWK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9egde/dJMcaduyjUp/jtQZH1KBDD5ZyaYqKH0HWK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9egde/dJMcaduyjUp/jtQZH1KBDD5ZyaYqKH0HWK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9egde%2FdJMcaduyjUp%2FjtQZH1KBDD5ZyaYqKH0HWK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;작업 스케줄러 목록에 방금 만든 항목이 제대로 떠 있는지 확인해 봅니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LAfza/dJMcaaq8g58/p4AO9rw9ye4DBZrLCIf2O1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LAfza/dJMcaaq8g58/p4AO9rw9ye4DBZrLCIf2O1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LAfza/dJMcaaq8g58/p4AO9rw9ye4DBZrLCIf2O1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLAfza%2FdJMcaaq8g58%2Fp4AO9rw9ye4DBZrLCIf2O1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이런 일련의 작업을 완료한 뒤, 컴퓨터를 재부팅해보니&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;윈도우가 시작과 함께 사용자 계정 컨트롤 화면은 뜨지 않고&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;바로 실행되는 것을 확인할 수 있었습니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6x7ew/dJMcadBi0p2/XriVHeRRqQhffapdMH2fK0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6x7ew/dJMcadBi0p2/XriVHeRRqQhffapdMH2fK0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6x7ew/dJMcadBi0p2/XriVHeRRqQhffapdMH2fK0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6x7ew%2FdJMcadBi0p2%2FXriVHeRRqQhffapdMH2fK0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;466&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다만, 작업 스케줄러 설정 과정에서 [&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;시작 위치&lt;/span&gt;&lt;/b&gt;] 항목을 설정할 때는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;경로 앞뒤에 큰 따옴표가 들어가지 않도록&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;해야 합니다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DP5D9/dJMcaivTcuN/NPo1v14kexSNqZmzLBMQg1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DP5D9/dJMcaivTcuN/NPo1v14kexSNqZmzLBMQg1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DP5D9/dJMcaivTcuN/NPo1v14kexSNqZmzLBMQg1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDP5D9%2FdJMcaivTcuN%2FNPo1v14kexSNqZmzLBMQg1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;467&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;저는 단축아이콘에 떠 있던 [대상]과 [시작 위치] 항목을 그대로 복사해 붙여넣는 식으로 사용했는데, [시작 위치] 경로 앞뒤에 큰 따옴표가 들어가자 프로그램이 실행되지 않는 문제가 있었고, 앞뒤 큰 따옴표를 삭제한 뒤에야 정상 작동하는 것을 확인할 수 있었습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://comterman.tistory.com/2136&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://comterman.tistory.com/2136&lt;/a&gt;&lt;/p&gt;</description>
      <category>Windows/Windows 11</category>
      <category>UAC</category>
      <category>스케줄러</category>
      <category>시작프로그램</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1043</guid>
      <comments>https://dexcore.tistory.com/1043#entry1043comment</comments>
      <pubDate>Tue, 24 Mar 2026 11:49:23 +0900</pubDate>
    </item>
    <item>
      <title>c# 정규식 기호표</title>
      <link>https://dexcore.tistory.com/1042</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;691&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1W2Lo/dJMcafFPgTy/ziP31ZmTkjPCXFaIXdWPI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1W2Lo/dJMcafFPgTy/ziP31ZmTkjPCXFaIXdWPI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1W2Lo/dJMcafFPgTy/ziP31ZmTkjPCXFaIXdWPI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1W2Lo%2FdJMcafFPgTy%2FziP31ZmTkjPCXFaIXdWPI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;693&quot; height=&quot;691&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;691&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>C#</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1042</guid>
      <comments>https://dexcore.tistory.com/1042#entry1042comment</comments>
      <pubDate>Thu, 12 Mar 2026 17:14:26 +0900</pubDate>
    </item>
    <item>
      <title>[C#] DLL 포함시켜 단일 EXE로 만들기 #2</title>
      <link>https://dexcore.tistory.com/1041</link>
      <description>&lt;h3 id=&quot;%ED%--%--%EB%A-%-C%EC%A-%-D%ED%-A%B-%--%ED%-C%-C%EC%-D%BC%--%EC%--%A-%EC%A-%--&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;#%ED%--%--%EB%A-%-C%EC%A-%-D%ED%-A%B-%--%ED%-C%-C%EC%-D%BC%--%EC%--%A-%EC%A-%--&quot;&gt;&lt;b&gt;프로젝트 파일 설정&lt;/b&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 파일 내에 PropertyGroup에 아래와 같은 항목을 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1694492142170&quot; class=&quot;xml&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;&amp;lt;Project Sdk=&quot;Microsoft.NET.Sdk&quot;&amp;gt;

  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;OutputType&amp;gt;WinExe&amp;lt;/OutputType&amp;gt;
    &amp;lt;TargetFramework&amp;gt;net6.0-windows&amp;lt;/TargetFramework&amp;gt;
    ...
    &amp;lt;PublishSingleFile&amp;gt;true&amp;lt;/PublishSingleFile&amp;gt;
    &amp;lt;SelfContained&amp;gt;true&amp;lt;/SelfContained&amp;gt;
    &amp;lt;RuntimeIdentifier&amp;gt;win-x64&amp;lt;/RuntimeIdentifier&amp;gt;
    &amp;lt;IncludeNativeLibrariesForSelfExtract&amp;gt;true&amp;lt;/IncludeNativeLibrariesForSelfExtract&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

&amp;lt;/Project&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PublishSingleFile : 하나의 파일로 게시(Publish)를 사용하도록 설정&lt;/li&gt;
&lt;li&gt;SelfContained : 앱이 자체 포함대상인지, 프레임워크 종속인지 확인&lt;/li&gt;
&lt;li&gt;RuntimeIdentifier : 대상으로 하는 OS / CPU 유형 지정&lt;/li&gt;
&lt;li&gt;IncludeNativeLibrariesForSelfExtract : 코어 런타임 자체의 네이티브 이진 파일 포함하고 하나의 출력 파일을 얻기 위한 속성 ( 코어 런타임 자체의 네이티브 이진 파일은 단일 파일 번들에 기본적으로 포함되지 않음 )&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;%EB%B-%B-%ED%-F%AC%---%EA%B-%-C%EC%-B%-C%--%-F%--Publish-&quot; data-ke-size=&quot;size23&quot;&gt;&lt;a href=&quot;#%EB%B-%B-%ED%-F%AC%---%EA%B-%-C%EC%-B%-C%--%-F%--Publish-&quot;&gt;&lt;b&gt;배포 (게시 / Publish)&lt;/b&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 프로젝트에서 게시(Publish)를 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-origin-height=&quot;312&quot; data-origin-width=&quot;508&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dna/cUBvvc/btstCE2PG7V/AAAAAAAAAAAAAAAAAAAAABy7_nXmdz5rngDLgTMJU9orlb8EOVUZPwvS9hKMUCF5/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1774969199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=MD9DYYKLGOl%2Flw12XdwWtRnRN%2BY%3D&quot; width=&quot;508&quot; height=&quot;312&quot; data-phocus-index=&quot;0&quot; data-origin-height=&quot;312&quot; data-origin-width=&quot;508&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;설정&lt;/b&gt;을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-origin-height=&quot;396&quot; data-origin-width=&quot;648&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dna/oUAXN/btstOjJGkRL/AAAAAAAAAAAAAAAAAAAAAAqX5Hfjn45fdnopOn_AqsdR9zthmSBuTLJkTazT1QkU/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1774969199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=pcCeJi%2BF1DrUUT8f7dB9IT7WCs0%3D&quot; width=&quot;648&quot; height=&quot;396&quot; data-phocus-index=&quot;1&quot; data-origin-height=&quot;396&quot; data-origin-width=&quot;648&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;프로필 설정&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;대화 상자에서 다음 옵션을 설정합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;배포 모드&lt;/b&gt;를&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;자체 포함&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;또는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;프레임워크 종속&lt;/b&gt;으로 설정합니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;대상 런타임&lt;/b&gt;을 게시할 플랫폼으로 설정합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;이식 가능&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;이외의 항목이어야 합니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;b&gt;단일 파일 생성&lt;/b&gt;을 선택합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;저장&lt;/b&gt;을 선택하여 설정을 저장하고&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;게시&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;대화 상자로 돌아갑니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-origin-height=&quot;502&quot; data-origin-width=&quot;548&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dna/pEKdP/btstQS6fxLP/AAAAAAAAAAAAAAAAAAAAAKV7RcQ0O7UQ38bxfY39kKRaWkprdolGWewlMyZEwT-7/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1774969199&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=U3Sax7fLarOmJrDHIcrqV5a%2Fqts%3D&quot; width=&quot;548&quot; height=&quot;502&quot; data-phocus-index=&quot;2&quot; data-origin-height=&quot;502&quot; data-origin-width=&quot;548&quot; /&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 과정을 통해 최종적으로 배포 시 하나의 파일로 만들어짐을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처: &lt;a href=&quot;https://sonseungha.tistory.com/699&quot;&gt;https://sonseungha.tistory.com/699&lt;/a&gt; [Developer's Delight:티스토리] &lt;/p&gt;</description>
      <category>C#</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1041</guid>
      <comments>https://dexcore.tistory.com/1041#entry1041comment</comments>
      <pubDate>Thu, 12 Mar 2026 17:10:53 +0900</pubDate>
    </item>
    <item>
      <title>C# WinForm - DLL 포함하여 EXE 빌드하기</title>
      <link>https://dexcore.tistory.com/1040</link>
      <description>&lt;div id=&quot;SE-a32a9a1a-6a92-4335-8d5f-97a7949a8b13&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-0118ddfd-03b2-42cc-9fa2-5db6f680434d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;C# DLL 포함하여 EXE 빌드하기&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-22778826-8fe6-46ef-8922-24e9fec1e370&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-764efce9-5a0c-48dc-ba15-2353a7a9cce4&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;Newtonsoft.Json.dll &lt;/span&gt;&lt;span&gt;을 예시로 설명드리겠습니다. (다른 DLL도 동일한 방식으로 하면 됩니다.)&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-3afe4f84-5ca4-4647-91cd-44dd3d29bca9&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-1a9c912e-dbd5-4298-bc50-20946a5e6d51&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;1. &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;프로젝트 -&amp;gt; NuGet 패키지 관리 -&amp;gt; Newtonsoft.Json&lt;/span&gt;&lt;span&gt; 설치를 진행합니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-6d396124-59da-4c0e-bc99-bc0673c5d1fe&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJYnIv/dJMcajak9Z8/bIkvm0YkdOAVRIoBrnqwRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJYnIv/dJMcajak9Z8/bIkvm0YkdOAVRIoBrnqwRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJYnIv/dJMcajak9Z8/bIkvm0YkdOAVRIoBrnqwRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJYnIv%2FdJMcajak9Z8%2FbIkvm0YkdOAVRIoBrnqwRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;773&quot; height=&quot;218&quot; data-origin-width=&quot;773&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-d51bf486-762d-44bc-8042-2bc6cdebaa38&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-b0b6d7ee-27a6-4d77-b5dd-50372febf732&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-c3f44b03-8e04-49da-baa3-72c72b4bb650&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;2. 설치를 완료하면 참조그룹 하위에 &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;Newtonsoft.Json&lt;/span&gt;&lt;span&gt;이 추가됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-7f33b827-2031-4dc7-9959-a873cf374546&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnZr5w/dJMcaivJXPA/haZlvg7TlkI2eDHB4nj9P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnZr5w/dJMcaivJXPA/haZlvg7TlkI2eDHB4nj9P0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnZr5w/dJMcaivJXPA/haZlvg7TlkI2eDHB4nj9P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnZr5w%2FdJMcaivJXPA%2FhaZlvg7TlkI2eDHB4nj9P0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;304&quot; height=&quot;131&quot; data-origin-width=&quot;304&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-8773e3eb-c636-4850-b5e1-5c6c4556f383&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-77a61a5c-cc98-4136-bd48-8dc30e7fed48&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-0276481f-6e68-461a-8ee3-94b6eaf9eb7d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt; 3. 프로젝트를 필드하면 빌드 경로에&lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt; Newtonsoft.Json.dll &lt;/span&gt;&lt;span&gt;파일이 exe파일과 함께 생성됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-eef5be69-992a-4101-882f-3515922d1943&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;198&quot; data-origin-height=&quot;140&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNJDZs/dJMcabckqnw/vq6lSOkAOA9ExaG2HyF1u0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNJDZs/dJMcabckqnw/vq6lSOkAOA9ExaG2HyF1u0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNJDZs/dJMcabckqnw/vq6lSOkAOA9ExaG2HyF1u0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNJDZs%2FdJMcabckqnw%2Fvq6lSOkAOA9ExaG2HyF1u0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;198&quot; height=&quot;140&quot; data-origin-width=&quot;198&quot; data-origin-height=&quot;140&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-e007ad6d-ce12-4117-bea7-45073b77b38c&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-66e4a159-0560-4c3d-bccf-94c848354b61&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-b51056eb-261b-4231-814c-ae998c89e710&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;4. &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;프로젝트 우클릭 -&amp;gt; 추가 -&amp;gt; 기존 항목&lt;/span&gt;&lt;span&gt; 메뉴를 실행하여 빌드 경로에 있는 &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;Newtonsoft.Json.dll 파일을 추가&lt;/span&gt;&lt;span&gt;해 줍니다. &lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-0b771864-f926-4154-9b2f-545d91c76714&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTsmIS/dJMcajak9Z6/0uD5r9cPCKO3CpZ1KzEUW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTsmIS/dJMcajak9Z6/0uD5r9cPCKO3CpZ1KzEUW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTsmIS/dJMcajak9Z6/0uD5r9cPCKO3CpZ1KzEUW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTsmIS%2FdJMcajak9Z6%2F0uD5r9cPCKO3CpZ1KzEUW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;291&quot; height=&quot;391&quot; data-origin-width=&quot;291&quot; data-origin-height=&quot;391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-f09031d1-345c-4987-bcfb-e9724ffd496a&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-180954f8-1492-4e4e-95ce-30572a214840&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-45c13e6b-3f7d-457a-b890-7c957365f8c8&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;5. &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;Newtonsoft.Json.dll 속성 -&amp;gt; 빌드 작업 -&amp;gt; 포함 리소스&lt;/span&gt;&lt;span&gt;로 변경해 줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-bda45233-6432-4da8-916d-27cdafca5ce9&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMZZCg/dJMcaadsjSo/ckbIWl75E8tCdcm9JOdFn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMZZCg/dJMcaadsjSo/ckbIWl75E8tCdcm9JOdFn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMZZCg/dJMcaadsjSo/ckbIWl75E8tCdcm9JOdFn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMZZCg%2FdJMcaadsjSo%2FckbIWl75E8tCdcm9JOdFn1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;558&quot; height=&quot;182&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-24a122d2-a29e-4bbd-8bbd-548f98fd94e8&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-fb324ae6-f7a7-47dd-92f5-02487c724ad9&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-26466d56-b2f1-41b3-8542-ee8e7d111329&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;6. Newtonsoft.Json 참조 속성에서 &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;로컬 복사를 False&lt;/span&gt;&lt;span&gt; 로 설정합니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-529b0077-2e8a-4f26-8073-fa6aa0cd030b&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/de6aln/dJMcajak9Z7/VrxZwN0Rkxmb0LKqO8zQQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/de6aln/dJMcajak9Z7/VrxZwN0Rkxmb0LKqO8zQQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/de6aln/dJMcajak9Z7/VrxZwN0Rkxmb0LKqO8zQQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fde6aln%2FdJMcajak9Z7%2FVrxZwN0Rkxmb0LKqO8zQQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;218&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-778198e7-726f-49f5-920a-bef59aa9723e&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr data-ke-style=&quot;style1&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-00cd2111-6e9c-4b75-84f9-8ab1ff34cf54&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-d9a56a47-724b-4c07-9153-50f1ee196c0f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;7. &lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;Program.cs&lt;/span&gt;&lt;span&gt; (애플리케이션의 주 진입점)에 dll 파일들을 어셈블리하게 해주는 코드(&lt;/span&gt;&lt;span style=&quot;color: #0078cb;&quot;&gt;ResolveAssembly&lt;/span&gt;&lt;span&gt;)를 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-2dcd34df-b658-4938-8d18-91330f635366&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div style=&quot;background-color: #fdfdfd;&quot;&gt;
&lt;div style=&quot;background-color: #000000; color: #000000; text-align: left;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;static&amp;nbsp;void&amp;nbsp;Main()&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;리소스&amp;nbsp;dll&amp;nbsp;취득 &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AppDomain.CurrentDomain.AssemblyResolve&amp;nbsp;+=&amp;nbsp;new&amp;nbsp;ResolveEventHandler(ResolveAssembly); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.EnableVisualStyles(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.SetCompatibleTextRenderingDefault(false); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.Run(new&amp;nbsp;Form1()); &lt;br /&gt;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//&amp;nbsp;.NET&amp;nbsp;4.0&amp;nbsp;이상 &lt;br /&gt;static&amp;nbsp;Assembly&amp;nbsp;ResolveAssembly(object&amp;nbsp;sender,&amp;nbsp;ResolveEventArgs&amp;nbsp;args)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assembly&amp;nbsp;thisAssembly&amp;nbsp;=&amp;nbsp;Assembly.GetExecutingAssembly(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;name&amp;nbsp;=&amp;nbsp;args.Name.Substring(0,&amp;nbsp;args.Name.IndexOf(','))&amp;nbsp;+&amp;nbsp;&quot;.dll&quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;resources&amp;nbsp;=&amp;nbsp;thisAssembly.GetManifestResourceNames().Where(s&amp;nbsp;=&amp;gt;&amp;nbsp;s.EndsWith(name)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(resources.Count()&amp;nbsp;&amp;gt;&amp;nbsp;0)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&amp;nbsp;resourceName&amp;nbsp;=&amp;nbsp;resources.First(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&amp;nbsp;(Stream&amp;nbsp;stream&amp;nbsp;=&amp;nbsp;thisAssembly.GetManifestResourceStream(resourceName))&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(stream&amp;nbsp;!=&amp;nbsp;null)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;assembly&amp;nbsp;=&amp;nbsp;new&amp;nbsp;byte[stream.Length]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stream.Read(assembly,&amp;nbsp;0,&amp;nbsp;assembly.Length); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&quot;Dll&amp;nbsp;file&amp;nbsp;load&amp;nbsp;:&amp;nbsp;&quot;&amp;nbsp;+&amp;nbsp;resourceName); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Assembly.Load(assembly); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;null; &lt;br /&gt;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;//&amp;nbsp;LINQ가&amp;nbsp;지원되지&amp;nbsp;않는&amp;nbsp;.NET&amp;nbsp;버전 &lt;br /&gt;static&amp;nbsp;Assembly&amp;nbsp;ResolveAssembly(object&amp;nbsp;sender,&amp;nbsp;ResolveEventArgs&amp;nbsp;args)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Assembly&amp;nbsp;thisAssembly&amp;nbsp;=&amp;nbsp;Assembly.GetExecutingAssembly(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&amp;nbsp;resourceName&amp;nbsp;=&amp;nbsp;null; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;string&amp;nbsp;fileName&amp;nbsp;=&amp;nbsp;args.Name.Substring(0,&amp;nbsp;args.Name.IndexOf(','))&amp;nbsp;+&amp;nbsp;&quot;.dll&quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach&amp;nbsp;(string&amp;nbsp;name&amp;nbsp;in&amp;nbsp;thisAssembly.GetManifestResourceNames())&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(name.EndsWith(fileName))&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resourceName&amp;nbsp;=&amp;nbsp;name; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(resourceName&amp;nbsp;!=&amp;nbsp;null)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;using&amp;nbsp;(Stream&amp;nbsp;stream&amp;nbsp;=&amp;nbsp;thisAssembly.GetManifestResourceStream(resourceName))&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(stream&amp;nbsp;!=&amp;nbsp;null)&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;byte[]&amp;nbsp;assembly&amp;nbsp;=&amp;nbsp;new&amp;nbsp;byte[stream.Length]; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stream.Read(assembly,&amp;nbsp;0,&amp;nbsp;assembly.Length); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&quot;Dll&amp;nbsp;file&amp;nbsp;load&amp;nbsp;:&amp;nbsp;&quot;&amp;nbsp;+&amp;nbsp;resourceName); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;Assembly.Load(assembly); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;null; &lt;br /&gt;}&lt;/p&gt;
&lt;div id=&quot;SE-b40fb5bd-5292-44a2-bf74-f585c49a1216&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;p id=&quot;SE-de84e7de-1753-4a5b-9cdc-1a88d2040868&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이제 DLL이 빌드경로에 복사되지 않고 하나의 EXE로 빌드가 완료됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sample :&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;partial&amp;nbsp;class&amp;nbsp;Form1&amp;nbsp;:&amp;nbsp;Form &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;Form1() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;InitializeComponent(); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;label1.Text&amp;nbsp;=&amp;nbsp;$&quot;{(JsonTest()&amp;nbsp;?&amp;nbsp;&quot;성공&quot;&amp;nbsp;:&amp;nbsp;&quot;실패&quot;)}&quot;; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;static&amp;nbsp;bool&amp;nbsp;JsonTest() &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;testModel&amp;nbsp;=&amp;nbsp;new&amp;nbsp;TestModel &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test1&amp;nbsp;=&amp;nbsp;&quot;test1&quot;, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Test2&amp;nbsp;=&amp;nbsp;&quot;test2&quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;&quot;{\&quot;Test1\&quot;:\&quot;test1\&quot;,\&quot;Test2\&quot;:\&quot;test2\&quot;}&quot;.Equals(JsonConvert.SerializeObject(testModel)); &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;public&amp;nbsp;class&amp;nbsp;TestModel &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;string&amp;nbsp;Test1&amp;nbsp;{&amp;nbsp;get;&amp;nbsp;set;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;string&amp;nbsp;Test2&amp;nbsp;{&amp;nbsp;get;&amp;nbsp;set;&amp;nbsp;} &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://blog.naver.com/danaramm/222557541294&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://blog.naver.com/danaramm/222557541294&lt;/a&gt;&lt;/p&gt;</description>
      <category>C#</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1040</guid>
      <comments>https://dexcore.tistory.com/1040#entry1040comment</comments>
      <pubDate>Thu, 12 Mar 2026 17:05:07 +0900</pubDate>
    </item>
    <item>
      <title>WCF Architecture</title>
      <link>https://dexcore.tistory.com/1039</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0075c8;&quot;&gt;&lt;b&gt;1.&amp;nbsp;WCF 아키텍처&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k0S1e/btsQaphK3z1/tkbyGLvWvTfFMix6mkuZW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k0S1e/btsQaphK3z1/tkbyGLvWvTfFMix6mkuZW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k0S1e/btsQaphK3z1/tkbyGLvWvTfFMix6mkuZW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk0S1e%2FbtsQaphK3z1%2FtkbyGLvWvTfFMix6mkuZW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;524&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(1) Contracts&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Contracts 레이어는 WCF 메시징 시스템의 다양한 측면을 정의합니다. 데이터 계약은 서비스와 클라이언트 간에 전달되는 데이터와 해당 데이터를 직렬화하는 방법을 설명합니다. 메시지 계약은 클라이언트와 서비스 간의 통신을 위해 WCF 런타임에서 제공하는 기본 SOAP 메시지 형식을 정의하며 요구 사항에 맞게 사용자 지정할 수 있습니다. 서비스 계약은 서비스의 실제 메소드 서명을 지정하며 대개 인터페이스로 정의됩니다. 정책 및 바인딩은 전송 프로토콜 HTTP 또는 TCP, 인코딩, 보안 요구 사항 등과 같은 서비스와 통신하는 데 필요한 조건을 정의합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(2) 서비스 런타임&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서비스 런타임 레이어는 서비스의 실제 작동 중에 만 발생하는 서비스의 런타임 동작을 포함합니다 .&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;background-color: #a6bcd1; color: #000000; text-align: left; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;동작&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Throttling Behavior&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff; color: #3d76ab;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스의 수요가 증가한 경우 처리되고 구성할 수 있는 메시지 수를 제어합니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Error Behavior&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스에서 내부 오류가 발생할 때 발생하는 동작을 지정합니다. 이렇게하면 예외가 발생할 때 클라이언트에 전달되는 정보를 구성할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Metadata Behavior&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;외부 세계에서 메타 데이터를 사용할 수 있는지 여부와 방법을 알려줍니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Instance Behavior&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;실행 중에 생성해야 하는 서비스의 인스턴스 수를 지정합니다. 예를 들어, 싱글톤은 모든 메시지를 처리하기 위해 하나의 인스턴스만 지정했습니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Transaction Behavior&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;오류가 발생하면 트랜잭션된 작업을 롤백 할 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Dispatched Behavior&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WCF 인프라에서 메시지를 처리하는 방법을 제어합니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(3) 메시징&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;메시징 계층은 채널로 구성됩니다. 채널은 메시지를 인증하는 등의 방법으로 메시지를 처리하는 구성 요소입니다. 채널은 일반적으로 메시지 및 메시지 헤더에서 작동하며 이는 주로 메시지 본문 내용 처리에 관심이 있는 서비스 런타임 계층과 다릅니다. 두 가지 유형의 채널이 지원됩니다. 전송 채널 네트워크에서 메시지를 읽고 씁니다. HTTP, TCP, MSMQ, 명명된 파이프 등이 그 예입니다. 프로토콜 채널은 메시지에 추가 헤더를 읽거나 쓰는 방법으로 메시지 처리 프로토콜을 구현합니다. 이러한 프로토콜의 예로 WS-Security 및 WS-Reliability가 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(4) 활성화 및 호스팅&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;모든 WCF 서비스는 클라이언트 요청 수신을 시작하기 전에 호스팅 되어야합니다. WCF 서비스는 다음과 같은 방법으로 호스팅 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;① IIS : 인터넷 정보 서비스는 서비스가 HTTP를 프로토콜로 사용하는 경우 많은 이점을 제공합니다. IIS 호스팅 옵션은 ASP.NET과 통합되어 있으며 프로세스 재활용, 유휴 종료, 프로세스 상태 모니터링 및 메시지 기반 활성화와 같은 이러한 기술이 제공하는 기능을 사용합니다. 가용성이 높고 확장성이 뛰어난 웹 서비스 응용 프로그램을 호스팅하는 데 선호되는 솔루션입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;② WAS(Windows Activation Service) : IIS 7.0에서 제공되며 Windows Server 2008 또는 Windows 7에서 사용할 수 있는 새로운 프로세스 활성화 메커니즘입니다. WCF는 HTTP 기반 통신 외에도 WAS를 사용하여 다른 서버 프로토콜(예 : TCP 및 명명된 파이프)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;③ 자체 호스팅 : WCF 서비스는 관리 콘솔, Windows Forms 또는 WPF 응용 프로그램으로 자체 호스팅 될 수 있습니다. 최소의 인프라 스트럭처가 필요하기 때문에 매우 유연한 옵션입니다. 서비스를 사용 가능하게 만들기 위해 ServiceHost의 인스턴스를 만들고 열려면 관리되는 응용 프로그램 내에 코드를 임베드해야합니다. 이처럼 호스트된 서비스는 개발 중에 매우 유용합니다. 추적 정보를 쉽게 디버깅하고 추적 정보를 얻어 어플리케이션 내부에서 일어나는 일을 파악할 수 있기 때문입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;④ Windows Service : WCF 서비스는 Service Control Manager(SCM)가 제어할 수 있도록 Windows 서비스로 호스팅 될 수도 있습니다. 자체 호스팅 옵션과 마찬가지로 일부 호스팅 코드는 어플리케이션의 일부로 작성해야했습니다. 서비스의 수명은 장기 실행 WCF 서비스를 위한 더 나은 옵션인 운영 체제에 의해 제어됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[출처]&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://blog.naver.com/islove8587/220970975880&quot;&gt;WCF Architecture&lt;/a&gt;&lt;span&gt;|&lt;/span&gt;&lt;b&gt;작성자&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://blog.naver.com/islove8587&quot;&gt;islove8587&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>.Net General</category>
      <category>WCF</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1039</guid>
      <comments>https://dexcore.tistory.com/1039#entry1039comment</comments>
      <pubDate>Thu, 28 Aug 2025 13:38:20 +0900</pubDate>
    </item>
    <item>
      <title>WCF</title>
      <link>https://dexcore.tistory.com/1038</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0075c8;&quot;&gt;&lt;b&gt;1. WCF란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;윈도우 커뮤니케이션 파운데이션(Windows Communication Foundation, WCF)은 응용 프로그램을 한 대의 컴퓨터나 네트워크에 연결된 여러 컴퓨터를 걸쳐 통신할 수 있게 만들어 주는 새로운 통신 하부 시스템이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;Microsoft에서 서비스 지향 아키텍처(Service Oriented Architecture,&amp;nbsp;&lt;/span&gt;&lt;span&gt;SOA)를 구현하기 위해 내놓은 프레임워크이다.&amp;nbsp;&lt;/span&gt;&lt;span&gt;서비스 지향 아키텍처&amp;nbsp;&lt;/span&gt;&lt;span&gt;어플리케이션을 구현하기 위해 WCF를 사용 한다면 일반적인 기능을 구현하기 위해 특별한 기술을 사용하지 않아도 WCF 프레임워크의 도움을 받아 쉽게 어플리케이션을 구현할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;span&gt;WCF 응용 프로그램들은 닷넷 런타임을 대상으로 하는 언어를 사용하여 개발할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0075c8;&quot;&gt;&lt;b&gt;&lt;span&gt;2.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;등장&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;배경&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(1) Microsoft의 분산 기술&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #a6bcd1; color: #000000; text-align: left; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #6284ab;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;서비스 이름&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ASP.NET Web Service&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상호 운용 가능한 일반적인 Web 서비스(Basic Profile 1.1 준거)를 구축하기 위한 기술&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa;&quot;&gt;&lt;span&gt;&lt;span&gt;Web Services Enhancements (WSE)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WS-*로 불리는 Web 서비스 최신의 확장 사양을 가능한 서포트한, 상호 운용을 의식한 차&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;세대 Web 서비스 구축을 위한 기술&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.NET Remoting&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;객체의 위치 투과성을 공급하고, 리모트 콜과 로컬 콜의 차이를 은폐한 프로그래밍을 가능&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하게 하는 분산 객체를 구축하기 위한 기술&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa;&quot;&gt;&lt;span&gt;&lt;span&gt;.NET Enterprise Services(ES)&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;분산 트랜잭션이나 객체 풀링 등 컴포넌트의 작성과 사용을 단순화 하면서, 어플리케이션의&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;범위성과 융통성을 향상시키기 위한 고도의 기능을 제공하는 기술&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MSMQ&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;즉시 응답을 필요로 하지 않는 비동기 메시지 교환의&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;어플리케이션을 구축하기 위한 기술&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(2) 등장 배경&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;위 처럼 Microsoft의 여러 분산 기술들이 있지만 서로 다른 프로그래밍 모델을 사용하고 있으며 각기 다른 설정을 가지고 있다. 서비스 구현 로직은 같지만 이를 재사용하기 위해서는 통신에 필요한 코드를 다시 작성해야 하는 불편함이 있다. 그래서 위와 같은 분산 기술들의 문제점을 극복하고자 WCF가 등장하게 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- SOA(Service Oriented Architecture)기반의 WebService&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- XML, SOAP 기반의 상호 운용 가능한 서비스&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 다양한 웹 서비스 스펙을 지원(WS-*)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Configuration 설정만으로 단일 코드를 이용한 다양한 프로토콜의 구성이 가능&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0075c8;&quot;&gt;&lt;b&gt;&lt;span&gt;3.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;특징&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(1) Unification(통일성), Integration(통합)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 분산환경 어플리케이션 개발을 위한 WebService, Remoting, MSMQ, WSE 등 MS의 분산 프로그래밍 모델들을 통일하여 새로운 개념의 분산환경 어플리케이션 플랫폼이다. 기존의 프로그래밍 모델들을 하부 구조는 유지한채 이것들의 표현 방식을 일관되게 하여 통일성을 이룩하였으며 기존 모델들이 가지는 각각의 장점과 기능들을 조합 가능하도록 하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKtu7T/btsP8JBpjUV/GUirB73QhuV0iV3vxK2ul1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKtu7T/btsP8JBpjUV/GUirB73QhuV0iV3vxK2ul1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKtu7T/btsP8JBpjUV/GUirB73QhuV0iV3vxK2ul1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKtu7T%2FbtsP8JBpjUV%2FGUirB73QhuV0iV3vxK2ul1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;293&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;293&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(2) Service Orientation(서비스 지향)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- SOAP를 지원함으로써 상호 운영성을 보장하며 이기종간 통신 인프라 구축을 가능하게 한다. 또한 WSE(웹 서비스 확장, WS-*) 를 모두 지원하여 확장된 형태의 서비스 구축이 가능하다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pgsyi/btsP8CPP63U/yffLKjkjLGUEa1TNfAPjhK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pgsyi/btsP8CPP63U/yffLKjkjLGUEa1TNfAPjhK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pgsyi/btsP8CPP63U/yffLKjkjLGUEa1TNfAPjhK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpgsyi%2FbtsP8CPP63U%2FyffLKjkjLGUEa1TNfAPjhK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;138&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 기능&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(1) Web Service Based&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- XML, HTTP, SOAP, WSDL 등 웹 서비스 스펙 준수&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;(2)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;Security&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;ndash; WS-Security, WS-Trust 등 메시지 기반 보안 제공&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;ndash; HTTPS, 인증 기반의 TCP/IP 등 트랜스포트 수준의 보안 제공&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;(3) Transaction&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 분산 트랜잭션 지원&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- TCP 바인딩 사용 시 OLE Transaction 직접 사용&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- HTTP 바인딩 사용 시 WS-AT 를 통해 트랜잭션 전파&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;(4)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;Reliability&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;ndash; 신뢰도 높은 메시징을 위해 WS-RM 프로토콜 구현&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;ndash; 세션 기능 제공(ASP.NET의 세션과는 다른 개념)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;(5)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;P2P Networking&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;(6)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;Rich Built-in Bindings&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #a6bcd1; color: #000000; text-align: left; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;바인딩&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;BasicHttpBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WS-Basic Profile에 따른 Web 서비스 (ASMX 기반의 서비스 등)와의 통신에 적절한 바인딩.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이 바인딩에서는 전송 프로토콜로서 HTTP가 사용되어 메시지의 인코딩으로서 Text/XML이 사용됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WSHttpBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이중이 아닌 서비스 계약에 적절한 보안으로 보호되어 상호 운용 가능한 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WSDualHttpBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이중의 서비스 계약 또는 SOAP 중개자를 사용한 통신에 적절한 보안으로 보호되어 상호 운용이 가능한 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WSFederationHttpBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WS-Federation 프로토콜을 지원하여, 페더레이션내 조직의 효율적인 사용자 인증과 승인이 가능한 보안으로 보호된 상호 운용이 가능한 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;NetTcpBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WCF 응용 프로그램 사이의 컴퓨터간 통신에 적절한 보안으로 보호된 최적화 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;NetNamedPipeBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WCF 응용 프로그램 사이의 1 대의 컴퓨터 위의 통신에 적절한 보안으로 보호되어 안정성있는 최적화된 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;NetMsmqBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WCF 응용 프로그램 사이의 컴퓨터간 통신에 적절한 큐에 등록된 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;NetPeerTcpBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;복수 머신간의 보안으로 보호된 통신이 가능한 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;MsmqIntegrationBinding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;WCF 응용 프로그램과 기존의 MSMQ 응용 프로그램 사이의 컴퓨터간 통신에 적절한 바인딩.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;span style=&quot;color: #0075c8;&quot;&gt;5. Endpoint&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(1) 정의&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;WCF는 Endpoint(끝점)를 통해 서버(서비스)와 클라이언트 간의 메시지 교환을 한다. Endpoint는 닷넷 리모팅의 채널과 포멧터를 합친 개념이라고도 볼 수 있는데 서버(서비스)에는 여러 개의 Endpoint를 구성할 수 있으며 클라이언트는 이중 하나 이상의 Endpoint와 메시지 교환을 하게 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009e25;&quot;&gt;&lt;b&gt;(2) ABC 컴포넌트 모델&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;WCF의 Endpoint는 서버와 클라이언트 간의 통신을 위한 포털 역할을 한다고 볼 수 있는데 이를 자세히 들여다 보면 통신을 위해 가장 기본적으로 서비스의 위치(Where)를 알아야 하며 통신방식(How)이 무엇인지 알아야 하며 서비스가 무엇(What)을 제공하는지 알아야 한다. 즉 Endpoint는 아래와 같은 구성요소로 이루어진다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;① Address&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 서비스를 액세스하기 위한 주소&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Transport에 따라 달라짐(&lt;a style=&quot;color: #000000;&quot; href=&quot;http://......,/&quot;&gt;http://......,&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;net.tcp://......, net.pipe://......, net.msmq://....., net.p2p://...... )&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;② Binding&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 서비스 호출에 사용되는 Transport 프로토콜, 인증, 암호화, 메시지 인코딩, 세션 여부 등&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Binding에 의해 Address 형식이 결정되곤 함&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- Custom Binding 제공도 가능&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;③ Contract&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 서비스에 대한 인터페이스&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 서비스의 메소드(Operation Contract)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;- 관련 데이터 타입들(Data Contract)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;background-color: #a6bcd1; color: #000000; text-align: left; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;구성 요소&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;키워드&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #6284ab; color: #ffffff; text-align: left;&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Address&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Where?&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스가 어디에 위치해 있는가?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스 주소 및 연결 포트 정보 등&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Binding&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;How?&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스는 어떤 통신을 하는가?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;통신 프로토콜, 인코딩 방법, 보안 요구사항 등&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;background-color: #f6f8fa; text-align: left;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Contract&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;What?&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;background-color: #ffffff;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스는 무엇을 제공하는가?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서비스가 제공하는 대상 등&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;즉 WCF에서 서버(서비스)와 클라이언트 간의 메시지 교환을 위한 Endpoint는 ABC 모델을 가지고 있으며 ABC 모델은 &amp;lsquo;어디에 있는 무엇을 어떻게 사용할 것인가?&amp;rsquo; 에 해당하는 모델이다. 아래 그림은 WCF 분산환경에서의 ACB 모델을 도식화 한 그림이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;WCF에서는 개발자로 하여금 Contract, 즉 무엇을 제공할 지만 신경쓰면 되도록 프로그래밍 환경을 단순화 하였다. 개발자는 서비스로 제공될 것만 개발하면 되고 나머지는 구성 파일에 속성 변경&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;등의 방법으로 쉽게 적용할 수 있도록 하여 개발 생산성 및 쉬운 개발을 가능하게 한다.&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[출처]&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://blog.naver.com/islove8587/220970196394&quot;&gt;WCF란?&lt;/a&gt;&lt;span&gt;|&lt;/span&gt;&lt;b&gt;작성자&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://blog.naver.com/islove8587&quot;&gt;islove8587&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>.Net General</category>
      <category>WCF</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1038</guid>
      <comments>https://dexcore.tistory.com/1038#entry1038comment</comments>
      <pubDate>Thu, 28 Aug 2025 13:37:26 +0900</pubDate>
    </item>
    <item>
      <title>Windows SandBox Error (0x80072746)</title>
      <link>https://dexcore.tistory.com/1037</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현재&amp;nbsp;연결은&amp;nbsp;원격&amp;nbsp;호스트에&amp;nbsp;의해&amp;nbsp;강제로&amp;nbsp;끊겼습니다.&amp;nbsp;(0x80072746)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zMWW0/btsN5zgnBw4/kGHKbtkiqltnYfk6xa6pfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zMWW0/btsN5zgnBw4/kGHKbtkiqltnYfk6xa6pfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zMWW0/btsN5zgnBw4/kGHKbtkiqltnYfk6xa6pfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzMWW0%2FbtsN5zgnBw4%2FkGHKbtkiqltnYfk6xa6pfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;817&quot; height=&quot;275&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://superuser.com/questions/1823739/windows-sandbox-fails-to-connect-error-0x80072746&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://superuser.com/questions/1823739/windows-sandbox-fails-to-connect-error-0x80072746&lt;/a&gt;&lt;/p&gt;</description>
      <category>Windows</category>
      <category>Sandbox</category>
      <category>windows sandbox</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1037</guid>
      <comments>https://dexcore.tistory.com/1037#entry1037comment</comments>
      <pubDate>Wed, 21 May 2025 16:43:52 +0900</pubDate>
    </item>
    <item>
      <title>How to use a DarkUI (dark user interface) in Winforms C#</title>
      <link>https://dexcore.tistory.com/1036</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Learn how to implement a Dark User Interface using the DarkUI collection of controls for Winforms.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;755&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vaWDB/btsNFgN9ZI8/kJI6NDiAoYkeVKhWkdrQSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vaWDB/btsNFgN9ZI8/kJI6NDiAoYkeVKhWkdrQSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vaWDB/btsNFgN9ZI8/kJI6NDiAoYkeVKhWkdrQSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvaWDB%2FbtsNFgN9ZI8%2FkJI6NDiAoYkeVKhWkdrQSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;755&quot; height=&quot;524&quot; data-origin-width=&quot;755&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;DarkUI is an attempt to create a simple, extensible control library which emulates the look and feel of popular tabbed document interfaces such as Visual Studio, Photoshop, WebStorm, and XCode. Originally just a collection of bug fixes and enhancements built on top of WinForms, it has now evolved in to a fully working docking and control library. Is important to notice that the library won't automatically make an existent project with a darker interface, instead this library creates new Controls that you can add on your project.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In this article, we'll explain you how to build the DarkUI dll to use it in your own projects and so implementing a dark UI.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;1. Clone DarkUI project and build DLL&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In order to include the DarkUI toolkit in your library, you will need specifically to reference a DLL that can be only obtained after building the main solution of the DarkUI project in Visual Studio. You can either&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/RobinPerris/DarkUI&quot;&gt;download a zip file with the content of the repository from Github&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;or clone it via git:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;crmsh&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;git clone https://github.com/RobinPerris/DarkUI.git&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;This will contain 2 directories of the project and a solution file, this will allow you to open the DarkUI project from Visual Studio:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjUGQx/btsNFAMskzj/xtVpEIaP8mCBU2mybPwp31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjUGQx/btsNFAMskzj/xtVpEIaP8mCBU2mybPwp31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjUGQx/btsNFAMskzj/xtVpEIaP8mCBU2mybPwp31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjUGQx%2FbtsNFAMskzj%2FxtVpEIaP8mCBU2mybPwp31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;662&quot; height=&quot;401&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Then, when the file browser shows up, select the solution on the root directory of the DarkUI downloaded project:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvWBZZ/btsNENFWM1D/yZDGpuLPev0fPRky5ENLW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvWBZZ/btsNENFWM1D/yZDGpuLPev0fPRky5ENLW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvWBZZ/btsNENFWM1D/yZDGpuLPev0fPRky5ENLW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvWBZZ%2FbtsNENFWM1D%2FyZDGpuLPev0fPRky5ENLW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;781&quot; height=&quot;383&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;This will open the DarkUI project in Visual Studio as any other project that you work with. Once it has been opened, navigate to the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Solution Explorer&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;select the DarkUI project&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;from the solution,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;do right click on it and click on Build&lt;/b&gt;:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;607&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNfOEh/btsNFy2a8dX/x0pCn2csvF6w7KsWpe8x6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNfOEh/btsNFy2a8dX/x0pCn2csvF6w7KsWpe8x6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNfOEh/btsNFy2a8dX/x0pCn2csvF6w7KsWpe8x6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNfOEh%2FbtsNFy2a8dX%2Fx0pCn2csvF6w7KsWpe8x6k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;626&quot; height=&quot;607&quot; data-origin-width=&quot;626&quot; data-origin-height=&quot;607&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;After starting the build, which shouldn't take a lot of time, you will find in the project of DarkUI in the path&lt;span&gt;&amp;nbsp;&lt;/span&gt;DarkUI\DarkUI\bin\Debug&lt;span&gt;&amp;nbsp;&lt;/span&gt;a DLL file namely&lt;span&gt;&amp;nbsp;&lt;/span&gt;DarkUI.dll. You will need to reference this DLL from the project that you want to use this library. For more information about this project, please visit&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/RobinPerris/DarkUI&quot;&gt;the official repository at Github here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;2. Reference DarkUI.dll&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;As next step, we'll now jump into the project where you want to implement the custom controls. Proceed creating a new tab of controls in the Toolbox with the DarkUI name with right click and&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Add Tab&lt;/b&gt;. Then do right click on the custom tab that you've created (DarkUI) and select&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Choose Items&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;from the menu:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;538&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lwa7s/btsNEmWcLmU/igaSNMqzPPzWoFTumwvzWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lwa7s/btsNEmWcLmU/igaSNMqzPPzWoFTumwvzWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lwa7s/btsNEmWcLmU/igaSNMqzPPzWoFTumwvzWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flwa7s%2FbtsNEmWcLmU%2FigaSNMqzPPzWoFTumwvzWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;538&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;538&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In the new window, go to the .NET Framework Components tab and click on Browse:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;669&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVCfz1/btsNEfQgeyD/kdNWxMhLkG7CHTUEwqJlFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVCfz1/btsNEfQgeyD/kdNWxMhLkG7CHTUEwqJlFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVCfz1/btsNEfQgeyD/kdNWxMhLkG7CHTUEwqJlFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVCfz1%2FbtsNEfQgeyD%2FkdNWxMhLkG7CHTUEwqJlFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;669&quot; height=&quot;479&quot; data-origin-width=&quot;669&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Once the filebrowser appears, you will need to navigate to the path&amp;nbsp;DarkUI\DarkUI\bin\Debug&amp;nbsp;of the original DarkUI project and select the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;DarkUI.dll&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;file generated in the first step, once selected, the controls of this library will appear on the list:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;623&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsQiFF/btsNFgADbe1/YhCoVnDF6Hlkj2Ufx0ymgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsQiFF/btsNFgADbe1/YhCoVnDF6Hlkj2Ufx0ymgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsQiFF/btsNFgADbe1/YhCoVnDF6Hlkj2Ufx0ymgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsQiFF%2FbtsNFgADbe1%2FYhCoVnDF6Hlkj2Ufx0ymgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;858&quot; height=&quot;623&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;623&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Click on Ok and that's it, now you will be able to drag the components from the toolbox in your project.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;3. Using DarkUI&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;As last step, you will need to change the class that extends your forms, instead of extending the Form class, it should extend the DarkForm class:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;cs&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;using DarkUI.Forms;

public partial class Form1 : DarkForm
{
    public Form1()
    {
        InitializeComponent();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;Note&lt;/h4&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;As a nice design tip, if you don't change the extend class of the Form, you can set the background color of any form to rgb(60, 63, 65), so the background will be always darker than any of the controls offered by the library.&lt;/p&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;That was basically everything you needed to use a dark interface on your WinForms application. You can check out the Example project included with the source code. It'll show you how to use the majority of the forms, controls, and docking components. You can also read the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/RobinPerris/DarkUI/wiki&quot;&gt;GitHub project wiki&lt;/a&gt;. This contains all the information you need to get started as well as more detailed information and guides.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Happy coding&lt;span&gt;&amp;nbsp;&lt;/span&gt;!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://ourcodeworld.com/articles/read/517/how-to-use-a-darkui-dark-user-interface-in-winforms-c-sharp&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ourcodeworld.com/articles/read/517/how-to-use-a-darkui-dark-user-interface-in-winforms-c-sharp&lt;/a&gt;&lt;/p&gt;</description>
      <category>C#</category>
      <category>c#</category>
      <category>darkui</category>
      <category>WinForm</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1036</guid>
      <comments>https://dexcore.tistory.com/1036#entry1036comment</comments>
      <pubDate>Wed, 30 Apr 2025 09:00:58 +0900</pubDate>
    </item>
    <item>
      <title>How to create barcode images from a string with different formats with C# using the barcodelib library in WinForms</title>
      <link>https://dexcore.tistory.com/1035</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Learn how to create different formats of Barcodes with the barcodelib library in C#&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIv4EZ/btsNFpRCB5q/GW7PeUhmGZVZ2v9ftWFDz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIv4EZ/btsNFpRCB5q/GW7PeUhmGZVZ2v9ftWFDz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIv4EZ/btsNFpRCB5q/GW7PeUhmGZVZ2v9ftWFDz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIv4EZ%2FbtsNFpRCB5q%2FGW7PeUhmGZVZ2v9ftWFDz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;944&quot; height=&quot;369&quot; data-origin-width=&quot;944&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;If you are working with C# and you need to generate one dimensional barcodes, you may know that there are not a lot of open source&amp;nbsp;Barcode Rendering libraries, that's why the barcodelib is one of the most known libraries to achieve this goal in C#, this library created by Brad Barnhill has been released under the Apache License, so it will fit in most of the legal requirements of many projects.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In this tutorial, we'll show you how to generate different types of barcodes with the barcodelib library in C#.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;1. Install Barcodelib&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;To install this package on your project in Visual Studio, go to the solution explorer and do right click on your project. From the dropdown list select the Manage NuGet Packages option:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s91cu/btsNEUx8emY/UXeaFe1wjTJHEakQkNT6i0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s91cu/btsNEUx8emY/UXeaFe1wjTJHEakQkNT6i0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s91cu/btsNEUx8emY/UXeaFe1wjTJHEakQkNT6i0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs91cu%2FbtsNEUx8emY%2FUXeaFe1wjTJHEakQkNT6i0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;467&quot; height=&quot;626&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In the Manager, go to the browse tab and search for the barcodelib package:&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;723&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVfvkK/btsND5NSRks/vBi77Skc97khJMgkknLp40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVfvkK/btsND5NSRks/vBi77Skc97khJMgkknLp40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVfvkK/btsND5NSRks/vBi77Skc97khJMgkknLp40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVfvkK%2FbtsND5NSRks%2FvBi77Skc97khJMgkknLp40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1252&quot; height=&quot;723&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;723&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Select the first package by Brad Barnhill and install it in your project. Once the installation finishes you will be able to use the library to create barcode images on your code. For more information about this library, please&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/barnhill/barcodelib&quot;&gt;visit the official repository at Github here&lt;/a&gt;. After installing the library in your project, you will be able to import the barcode library namespace and the image classes of .NET:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;gams&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Barcodelib namespace
using BarcodeLib;

// .net required namespaces
using System.Drawing;
using System.Drawing.Imaging;
using Color = System.Drawing.Color;&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;2. Generating barcode images&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;The best way to understand how to generate the barcodes with this library in C# is basically with examples:&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;UPC-A&lt;/h3&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Create an instance of the API
Barcode barcodeAPI = new Barcode();

// Define basic settings of the image
int imageWidth = 290;
int imageHeight = 120;
Color foreColor = Color.Black;
Color backColor = Color.Transparent;
string data = &quot;038000356216&quot;;

// Generate the barcode with your settings
Image barcodeImage = barcodeAPI.Encode(TYPE.UPCA, data, foreColor, backColor, imageWidth, imageHeight);

// Store image in some path with the desired format
barcodeImage.Save(@&quot;C:\Users\sdkca\Desktop\upca_example.png&quot;, ImageFormat.Png);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mZa5z/btsNFoLVXP1/jTiHvuWiSgdSA3kJjLVAKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mZa5z/btsNFoLVXP1/jTiHvuWiSgdSA3kJjLVAKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mZa5z/btsNFoLVXP1/jTiHvuWiSgdSA3kJjLVAKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmZa5z%2FbtsNFoLVXP1%2FjTiHvuWiSgdSA3kJjLVAKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;120&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;Code 128&lt;/h3&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Create an instance of the API
Barcode barcodeAPI = new Barcode();

// Define basic settings of the image
int imageWidth = 290;
int imageHeight = 120;
Color foreColor = Color.Black;
Color backColor = Color.Transparent;
string data = &quot;ABC-abc-1234&quot;;

// Generate the barcode with your settings
Image barcodeImage = barcodeAPI.Encode(TYPE.CODE128, data, foreColor, backColor, imageWidth, imageHeight);

// Store image in some path with the desired format
barcodeImage.Save(@&quot;C:\Users\sdkca\Desktop\code128_example.png&quot;, ImageFormat.Png);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JhYdP/btsNERH9hhY/hBZVovOXSzVOeiwUMFzBe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JhYdP/btsNERH9hhY/hBZVovOXSzVOeiwUMFzBe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JhYdP/btsNERH9hhY/hBZVovOXSzVOeiwUMFzBe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJhYdP%2FbtsNERH9hhY%2FhBZVovOXSzVOeiwUMFzBe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;120&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;Code 11&lt;/h3&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Create an instance of the API
Barcode barcodeAPI = new Barcode();

// Define basic settings of the image
int imageWidth = 290;
int imageHeight = 120;
Color foreColor = Color.Black;
Color backColor = Color.Transparent;
string data = &quot;0123-4567&quot;;

// Generate the barcode with your settings
Image barcodeImage = barcodeAPI.Encode(TYPE.CODE11, data, foreColor, backColor, imageWidth, imageHeight);

// Store image in some path with the desired format
barcodeImage.Save(@&quot;C:\Users\sdkca\Desktop\code11_example.png&quot;, ImageFormat.Png);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2wFBJ/btsNFSF2yFv/TodyBvRbnPDA9cnjlCYWZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2wFBJ/btsNFSF2yFv/TodyBvRbnPDA9cnjlCYWZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2wFBJ/btsNFSF2yFv/TodyBvRbnPDA9cnjlCYWZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2wFBJ%2FbtsNFSF2yFv%2FTodyBvRbnPDA9cnjlCYWZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;120&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;ISBN&lt;/h3&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Create an instance of the API
Barcode barcodeAPI = new Barcode();

// Define basic settings of the image
int imageWidth = 290;
int imageHeight = 120;
Color foreColor = Color.Black;
Color backColor = Color.Transparent;
string data = &quot;9781234567897&quot;;

// Generate the barcode with your settings
Image barcodeImage = barcodeAPI.Encode(TYPE.ISBN, data, foreColor, backColor, imageWidth, imageHeight);

// Store image in some path with the desired format
barcodeImage.Save(@&quot;C:\Users\sdkca\Desktop\isbn_example.png&quot;, ImageFormat.Png);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhG1kD/btsNFn7jFoG/brGK1ldfyReEpBjeRwlQ60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhG1kD/btsNFn7jFoG/brGK1ldfyReEpBjeRwlQ60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhG1kD/btsNFn7jFoG/brGK1ldfyReEpBjeRwlQ60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhG1kD%2FbtsNFn7jFoG%2FbrGK1ldfyReEpBjeRwlQ60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;120&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;ITF14&lt;/h3&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Create an instance of the API
Barcode barcodeAPI = new Barcode();

// Define basic settings of the image
int imageWidth = 290;
int imageHeight = 120;
Color foreColor = Color.Black;
Color backColor = Color.Transparent;
string data = &quot;17350053850252&quot;;

// Generate the barcode with your settings
Image barcodeImage = barcodeAPI.Encode(TYPE.ITF14, data, foreColor, backColor, imageWidth, imageHeight);

// Store image in some path with the desired format
barcodeImage.Save(@&quot;C:\Users\sdkca\Desktop\itf14_example.png&quot;, ImageFormat.Png);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tFyC2/btsNEcMMVDo/tFdv9nvBidACbshOQ9Iujk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tFyC2/btsNEcMMVDo/tFdv9nvBidACbshOQ9Iujk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tFyC2/btsNEcMMVDo/tFdv9nvBidACbshOQ9Iujk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtFyC2%2FbtsNEcMMVDo%2FtFdv9nvBidACbshOQ9Iujk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;120&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 style=&quot;color: #000000;&quot; data-ke-size=&quot;size23&quot;&gt;EAN13&lt;/h3&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Create an instance of the API
Barcode barcodeAPI = new Barcode();

// Define basic settings of the image
int imageWidth = 290;
int imageHeight = 120;
Color foreColor = Color.Black;
Color backColor = Color.Transparent;
string data = &quot;978020137962&quot;;

// Generate the barcode with your settings
Image barcodeImage = barcodeAPI.Encode(TYPE.EAN13, data, foreColor, backColor, imageWidth, imageHeight);

// Store image in some path with the desired format
barcodeImage.Save(@&quot;C:\Users\sdkca\Desktop\ean13_example.png&quot;, ImageFormat.Png);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBQm8J/btsNFR8ehPM/steEiNBrlQBEPb7JaL61Nk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBQm8J/btsNFR8ehPM/steEiNBrlQBEPb7JaL61Nk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBQm8J/btsNFR8ehPM/steEiNBrlQBEPb7JaL61Nk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBQm8J%2FbtsNFR8ehPM%2FsteEiNBrlQBEPb7JaL61Nk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;290&quot; height=&quot;120&quot; data-origin-width=&quot;290&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Happy coding&lt;span&gt;&amp;nbsp;&lt;/span&gt;!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://ourcodeworld.com/articles/read/478/how-to-create-barcode-images-from-a-string-with-different-formats-with-c-sharp-using-the-barcodelib-library-in-winforms&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ourcodeworld.com/articles/read/478/how-to-create-barcode-images-from-a-string-with-different-formats-with-c-sharp-using-the-barcodelib-library-in-winforms&lt;/a&gt;&lt;/p&gt;</description>
      <category>C#</category>
      <category>barcode</category>
      <category>c#</category>
      <category>WinForm</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1035</guid>
      <comments>https://dexcore.tistory.com/1035#entry1035comment</comments>
      <pubDate>Wed, 30 Apr 2025 08:59:14 +0900</pubDate>
    </item>
    <item>
      <title>How to run any executable inside the System32 directory of Windows with C# in WinForms</title>
      <link>https://dexcore.tistory.com/1034</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Learn why applications inside the system32 directory cannot be started easily from your WinForms c# based application and how to start them properly.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In windows, for some x64 based systems you will face sometimes a weird behaviour when you try to run some executable from your application that is located in the&amp;nbsp;(C:\Windows\system32) directory of Windows, for example with&lt;span&gt;&amp;nbsp;&lt;/span&gt;dfrgui.exe, an application that allows the user to defrag the disks on the system. It could be theoretically started with the following code:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;arduino&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// First way
Process processToStart = new Process
{
    StartInfo =
    {
        FileName = @&quot;dfrgui.exe&quot;,
        WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System)
    }
};

processToStart.Start();

// Second way
Process.Start(@&quot;C:\Windows\system32\dfrgui.exe&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;However, when you run the code on the mentioned platform,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;you will see nothing, absolutely nothing. There's no exception, no stack trace, just nothing.&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;This problem can be pretty frustrating, fortunately there's a solution for this problem that you can easily implement in your application without so much hassle.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In this article, we'll explain you how to prevent this behaviour and run any executable located in the System32 directory of Windows with C# in Winforms.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;1. Create Wow64Interop class&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;In order to run any executable located in the system directory of windows (C:\Windows\system32) you will need to disable the file system redirection for the calling thread. File system redirection is enabled by default on every system, so you will need to run a native method of Windows namely the&lt;span&gt;&amp;nbsp;&lt;/span&gt;Wow64DisableWow64FsRedirection&lt;span&gt;&amp;nbsp;&lt;/span&gt;function. Previously, the predilect function to achieve this was&amp;nbsp;Wow64EnableWow64FsRedirection, however&amp;nbsp;this function&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-wow64enablewow64fsredirection&quot;&gt;may not work reliably when there are nested calls&lt;/a&gt;. To ensure the correct functionality of your application, be sure to use&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://msdn.microsoft.com/es-es/44bedfa3-5a92-4e78-9e38-8278a7efe9b7&quot;&gt;the&amp;nbsp;Wow64DisableWow64FsRedirection method&lt;/a&gt;. The class will contain as well the method to revert what we did at the beginning with the previous function, namely&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://msdn.microsoft.com/es-es/library/windows/desktop/aa365745&quot;&gt;the&amp;nbsp;Wow64RevertWow64FsRedirection method&lt;/a&gt;,&amp;nbsp;any data allocation on behalf of the&lt;span&gt;&amp;nbsp;&lt;/span&gt;Wow64DisableWow64FsRedirection&lt;span&gt;&amp;nbsp;&lt;/span&gt;function is cleaned up by this function.&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;We can include this helper in our code in the following way. Proceed to include this method on your Winforms application creating the following class within your own namespace. This class name will be&lt;span&gt;&amp;nbsp;&lt;/span&gt;Wow64Interop&lt;span&gt;&amp;nbsp;&lt;/span&gt;(filename&lt;span&gt;&amp;nbsp;&lt;/span&gt;Wow64Interop.cs) and contains the following code:&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;cs&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;using System;
using System.Runtime.InteropServices;

namespace Sandbox
{
    public class Wow64Interop
    {
        const string Kernel32dll = &quot;Kernel32.Dll&quot;;

        [DllImport(Kernel32dll, EntryPoint = &quot;Wow64DisableWow64FsRedirection&quot;)]
        public static extern bool DisableWow64FSRedirection(ref IntPtr ptr);

        [DllImport(Kernel32dll, EntryPoint = &quot;Wow64RevertWow64FsRedirection&quot;)]
        public static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;After including the class, it should be exposed publicly in your application as we'll use it later to run the app.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;2. Run your application that is inside the system32 directory&lt;/h2&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Now, as mentioned at the beggining we need to disable as first the&amp;nbsp;file system redirection for the calling thread, so we will wrap our code initialize the application inside a try-catch block that will run before the&amp;nbsp;Wow64Interop.DisableWow64FSRedirection(true)&lt;span&gt;&amp;nbsp;&lt;/span&gt;method that will allow you to start the executable (disables the redirection):&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;background-color: #111b27; color: #e3eaf2; text-align: left;&quot;&gt;&lt;code&gt;// Required namespaces
using System;
using System.Diagnostics;
using System.Windows.Forms;

IntPtr wow64Value = IntPtr.Zero;

try
{
    // 1. Disable initially the Wow64FSRedirection
    Wow64Interop.DisableWow64FSRedirection(ref wow64Value);

    // 2. Prepare the code that starts another executable
    // Run the application from the system32 directory
    // In this case we will run the dfrgui.exe app
    //
    // C:\Windows\system32\dfrgui.exe
    Process processToStart = new Process
    {
        StartInfo =
        {
            FileName = @&quot;dfrgui.exe&quot;,
            WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.System)
        }
    };

    // Start the application
    processToStart.Start();
}
catch (Exception exc)
{
    Console.WriteLine(&quot;Unabled to disable/enable WOW64 File System Redirection&quot;);
    Console.WriteLine(exc.Message);
}
finally
{
    // 3. Let the Wow64FSRedirection with its initially state
    Wow64Interop.Wow64RevertWow64FsRedirection(wow64Value);
}&lt;/code&gt;&lt;/pre&gt;
&lt;div&gt;
&lt;div&gt;&lt;a style=&quot;background-color: #6cb8e6; color: #111b27; text-align: center;&quot;&gt;Copy snippet&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;The code should now start the application without any issue (in case that you don't have the permissions, you will see at least the exception triggered cause of your credentials, but you will see at least something, unlike the code we had at the beginning). Don't forget to revert the changes made to the redirection again once the executable starts inside the finally statement (Wow64Interop.Wow64RevertWow64FsRedirection(true)).&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Happy coding&lt;span&gt;&amp;nbsp;&lt;/span&gt;!&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://ourcodeworld.com/articles/read/909/how-to-run-any-executable-inside-the-system32-directory-of-windows-with-c-sharp-in-winforms&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://ourcodeworld.com/articles/read/909/how-to-run-any-executable-inside-the-system32-directory-of-windows-with-c-sharp-in-winforms&lt;/a&gt;&lt;/p&gt;</description>
      <category>C#</category>
      <category>c#</category>
      <category>System32</category>
      <author>탑~!</author>
      <guid isPermaLink="true">https://dexcore.tistory.com/1034</guid>
      <comments>https://dexcore.tistory.com/1034#entry1034comment</comments>
      <pubDate>Wed, 30 Apr 2025 08:50:15 +0900</pubDate>
    </item>
  </channel>
</rss>