<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>열이 Blog : )</title>
    <link>https://shine10e.tistory.com/</link>
    <description>- Software Developer</description>
    <language>ko</language>
    <pubDate>Wed, 15 Apr 2026 15:25:08 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>열ㅇl</managingEditor>
    <image>
      <title>열이 Blog : )</title>
      <url>https://t1.daumcdn.net/cfile/tistory/25462C34549E33E82B</url>
      <link>https://shine10e.tistory.com</link>
    </image>
    <item>
      <title>TeamCity에 Nuget 배포</title>
      <link>https://shine10e.tistory.com/141</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;direction:ltr;border-width:100%&quot;&gt;

&lt;div style=&quot;direction:ltr;margin-top:0in;margin-left:0in;width:6.4798in&quot;&gt;

&lt;div style=&quot;direction:ltr;margin-top:0in;margin-left:0in;width:6.4798in&quot;&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:14.0pt&quot;&gt;&lt;span style=&quot;font-weight:bold&quot; lang=&quot;x-none&quot;&gt;Nuget Feed &lt;/span&gt;&lt;span style=&quot;font-weight:
bold&quot; lang=&quot;ko&quot;&gt;활성화&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:Calibri;font-size:11.0pt&quot; lang=&quot;ko&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;margin: 0in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9992413B5AAA2E0114&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9992413B5AAA2E0114&quot; width=&quot;730&quot; height=&quot;561&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0in&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:14.0pt&quot;&gt;&lt;span style=&quot;font-weight:bold&quot; lang=&quot;ko&quot;&gt;빌드&lt;/span&gt;&lt;span style=&quot;font-weight:bold&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight:bold&quot; lang=&quot;ko&quot;&gt;구성&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;disc&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;x-none&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot;&gt;Visual Studio (sln)&lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;x-none&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot;&gt;Nuget Pack&lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;x-none&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot;&gt;Nuget Publish&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/996F58355AAA2E0C05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996F58355AAA2E0C05&quot; width=&quot;730&quot; height=&quot;306&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0in&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:14.0pt&quot;&gt;&lt;span style=&quot;font-weight:bold&quot; lang=&quot;x-none&quot;&gt;Visual Studio &lt;/span&gt;&lt;span style=&quot;font-weight:bold&quot; lang=&quot;ko&quot;&gt;설정&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;disc&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;도구&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;]-&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;x-none&quot;&gt;[Nuget &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;패키지&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;관리자&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;x-none&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;-[&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;패키지&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;관리자&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;설정&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;]&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99746E3D5AAA2E1636&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99746E3D5AAA2E1636&quot; width=&quot;730&quot; height=&quot;426&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0in&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:Calibri;font-size:11.0pt&quot; lang=&quot;ko&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px; font-family: &amp;amp;quot;맑은 고딕&amp;amp;quot;, sans-serif; font-size: 13px;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9990B5395AAA2E223D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9990B5395AAA2E223D&quot; width=&quot;730&quot; height=&quot;164&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 13px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-top: 0in; margin-right: 0in; margin-bottom: 0in;&quot;&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:14.0pt&quot;&gt;&lt;span style=&quot;font-weight:bold&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:14.0pt&quot;&gt;&lt;span style=&quot;font-weight:bold&quot;&gt;참고&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;disc&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;a href=&quot;https://blog.jetbrains.com/teamcity/2011/12/setting-up-teamcity-as-a-native-nuget-server/&quot;&gt;&lt;span style=&quot;font-family:Calibri;font-size:11.0pt&quot; lang=&quot;en-US&quot;&gt;ht&lt;/span&gt;&lt;span style=&quot;font-family:Calibri;font-size:11.0pt&quot; lang=&quot;ko&quot;&gt;tps://blog.jetbrains.com/teamcity/2011/12/setting-up-teamcity-as-a-native-nuget-server/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:Calibri;font-size:11.0pt&quot;&gt;&lt;a href=&quot;https://blog.jetbrains.com/dotnet/2011/08/24/native-nuget-support-in-teamcity/&quot;&gt;https://blog.jetbrains.com/dotnet/2011/08/24/native-nuget-support-in-teamcity/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>teamcity nuget</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/141</guid>
      <comments>https://shine10e.tistory.com/141#entry141comment</comments>
      <pubDate>Thu, 15 Mar 2018 17:30:02 +0900</pubDate>
    </item>
    <item>
      <title>Publish Nuget Package</title>
      <link>https://shine10e.tistory.com/140</link>
      <description>&lt;p&gt;&lt;/p&gt;&lt;div style=&quot;direction:ltr;border-width:100%&quot;&gt;

&lt;div style=&quot;direction:ltr;margin-top:0in;margin-left:0in;width:7.4583in&quot;&gt;

&lt;div style=&quot;direction:ltr;margin-top:0in;margin-left:0in;width:7.4583in&quot;&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;x-none&quot;&gt;Nuget &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;설치&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;a href=&quot;https://www.nuget.org/downloads&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;
     font-size:10.0pt&quot;&gt;https://www.nuget.org/downloads&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt; &lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;환경변수&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;등록&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin:0in;margin-left:.375in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;폴더&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;구조&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;설정&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;루트&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;폴더를&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;생성&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;후&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;x-none&quot;&gt;Nuget 형식&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;에&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; 맞게 &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;구성&lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in 0in 0in 0.375in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 651px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99AAA73D5AA9EE2E1F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99AAA73D5AA9EE2E1F&quot; width=&quot;651&quot; height=&quot;768&quot; filename=&quot;1.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;예제&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in 0in 0in 0.375in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 214px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9911A9335AA9EF2502&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9911A9335AA9EF2502&quot; width=&quot;214&quot; height=&quot;131&quot; filename=&quot;2.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;circle&quot; style=&quot;margin-left:.75in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;Nuget &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;폴더&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;하위에&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;버전&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;관리를&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;위한&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;폴더&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;생성&lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;content: &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;설치할&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;프로젝트의&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;루트에&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;복사될&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;폴더와&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;파일들&lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;lib: &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;설치할&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;프로젝트의&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;레퍼런스에&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;추가&lt;/span&gt;&lt;/li&gt;&lt;ul type=&quot;circle&quot; style=&quot;direction: ltr; unicode-bidi: embed; margin-top: 0in; margin-bottom: 0in;&quot;&gt;&lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;&amp;lt;package_id&amp;gt;.targets 또는&amp;nbsp;&lt;/span&gt;&amp;lt;package_id&amp;gt;.props 형식으로 폴더를 만들어 타켓을 설정&lt;/li&gt;&lt;/ul&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;tools: &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;패키지&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;매니저에서&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;사용할&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; PowerSheell &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;스크립트&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;파일들&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin:0in;margin-left:.375in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;en-US&quot;&gt;*.nuspec &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;파일&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;생성&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;커맨드&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;창에서&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;프로젝트의&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; *.csproj &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;파일&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;폴더로&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;이동&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;후&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;명령어&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;입력&lt;/span&gt;&lt;/li&gt;
 &lt;ul type=&quot;circle&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
  margin-top:0in;margin-bottom:0in&quot;&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&amp;gt; nuget spec&lt;/span&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;생성된 파일&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;내용&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;수정&lt;/span&gt;&lt;/li&gt;
 &lt;ul type=&quot;circle&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
  margin-top:0in;margin-bottom:0in&quot;&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;그림처럼&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;생성된&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;기본&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;값들을&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;프로젝트에&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;맞게&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;수정&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul type=&quot;circle&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
  margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in 0in 0in 0.375in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 626px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9976CC3D5AA9EF3136&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9976CC3D5AA9EF3136&quot; width=&quot;626&quot; height=&quot;295&quot; filename=&quot;3.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0in;margin-left:.375in&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;margin-left:.375in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;en-US&quot;&gt;*.nupkg &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;파일&lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot; lang=&quot;ko&quot;&gt;생성&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;수정한&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; *.nuspec &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;파일을&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;버전명으로&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;지정한&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;폴더로&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;이동&lt;/span&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;커맨드&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;창에서&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;명령어&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;입력&lt;/span&gt;&lt;/li&gt;
 &lt;ul type=&quot;circle&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
  margin-top:0in;margin-bottom:0in&quot;&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&amp;gt; nuget pack&lt;/span&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;x-none&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&lt;span style=&quot;font-weight: bold; font-size: 14pt;&quot;&gt;배포&lt;/span&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;a href=&quot;https://www.nuget.org/&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:
     10.0pt&quot; lang=&quot;en-US&quot;&gt;https://www.nuget.org/&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;에서&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;회원가입&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;후&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; API key &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;발급&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;후&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; Copy&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in 0in 0in 0.375in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 678px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/990A2F355AA9EF3D32&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F990A2F355AA9EF3D32&quot; width=&quot;678&quot; height=&quot;180&quot; filename=&quot;4.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 0in 0.375in; text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-weight:bold;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt;.nupkg &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;파일&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;경로에서&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;커맨드&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;창에서&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;명령어&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;입력&lt;/span&gt;&lt;/li&gt;
 &lt;ul type=&quot;circle&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
  margin-top:0in;margin-bottom:0in&quot;&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&amp;gt; nuget setApi
      &amp;lt;API_KEY&amp;gt;&lt;/span&gt;&lt;/li&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;&amp;gt; nuget push
      &amp;lt;.nupkg&amp;gt; -Source &amp;lt;URL&amp;gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;배포할 서버 URL을 입력&lt;/span&gt;&lt;/li&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;Nuget URL: &lt;/span&gt;&lt;a href=&quot;https://www.nuget.org/api/v2/&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;
      font-size:10.0pt&quot;&gt;https://www.nuget.org/api/v2/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;예제&lt;/span&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in 0in 0in 0.75in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 624px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99F17F3A5AA9EF4A2E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99F17F3A5AA9EF4A2E&quot; width=&quot;624&quot; height=&quot;19&quot; filename=&quot;5.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0in;margin-left:.75in&quot;&gt;&lt;br /&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot;&gt;완료&lt;/span&gt;&lt;/li&gt;
 &lt;ul type=&quot;circle&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
  margin-top:0in;margin-bottom:0in&quot;&gt;
  &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;등록&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;되기까지&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;시간이&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;걸릴&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;수&lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family:&amp;quot;맑은 고딕&amp;quot;;font-size:10.0pt&quot; lang=&quot;ko&quot;&gt;있음&lt;/span&gt;&lt;/li&gt;
 &lt;/ul&gt;
&lt;/ul&gt;

&lt;p style=&quot;margin: 0in 0in 0in 0.375in; text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 520px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9967B6415AA9EF5732&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9967B6415AA9EF5732&quot; width=&quot;520&quot; height=&quot;90&quot; filename=&quot;6.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style=&quot;margin:0in;margin-left:.375in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:
11.0pt&quot; lang=&quot;ko&quot;&gt;&amp;nbsp;&lt;/p&gt;

&lt;p style=&quot;margin:0in;font-family:&amp;quot;Malgun Gothic&amp;quot;;font-size:11.0pt&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 14pt;&quot;&gt;참고&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;ul type=&quot;square&quot; style=&quot;margin-left:.375in;direction:ltr;unicode-bidi:embed;
 margin-top:0in;margin-bottom:0in&quot;&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package&quot;&gt;&lt;span style=&quot;font-family:Calibri;font-size:11.0pt&quot;&gt;https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
 &lt;li style=&quot;margin-top:0;margin-bottom:0;vertical-align:middle&quot; lang=&quot;en-US&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/nuget/&quot;&gt;&lt;span style=&quot;font-family:
     Calibri;font-size:11.0pt&quot;&gt;https://docs.microsoft.com/en-us/nuget/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;/div&gt;

&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>nuget pack</category>
      <category>nuget publish</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/140</guid>
      <comments>https://shine10e.tistory.com/140#entry140comment</comments>
      <pubDate>Thu, 15 Mar 2018 13:00:45 +0900</pubDate>
    </item>
    <item>
      <title>Publish ClickOnce With TeamCity</title>
      <link>https://shine10e.tistory.com/139</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;TeamCity를 통해 ClickOnce 배포 빌드 후 Amazon S3에 업로드하는&amp;nbsp;과정을&amp;nbsp;포스팅합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;Sign할 인증서&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;는 서버에 설치되어 있어야 합니다.&lt;/span&gt;&lt;/p&gt;&lt;ul data-mce-style=&quot;list-style-type: square;&quot; style=&quot;margin: 0px; list-style-type: square; color: rgb(51, 51, 51); font-family: &amp;quot;Noto Sans KR&amp;quot;, sans-serif; font-size: 13.6px;&quot;&gt;&lt;ul data-mce-style=&quot;list-style-type: square;&quot; style=&quot;margin-top: 0px; margin-right: 0px; margin-bottom: 0px; list-style-type: square; color: rgb(51, 51, 51); font-family: &amp;quot;Noto Sans KR&amp;quot;, sans-serif; font-size: 13.6px;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;.pfx 형식&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 24pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Install&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;파일 다운로드 후 설치&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-size: 13.3333px; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;URL:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.jetbrains.com/teamcity/download/&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;https://www.jetbrains.com/teamcity/download/&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/994A6E375AA78EDC2C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F994A6E375AA78EDC2C&quot; width=&quot;730&quot; height=&quot;530&quot; filename=&quot;1.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99CBC2375AA78EDC20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99CBC2375AA78EDC20&quot; width=&quot;499&quot; height=&quot;388&quot; filename=&quot;2.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9904AC375AA78EDC1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9904AC375AA78EDC1C&quot; width=&quot;499&quot; height=&quot;388&quot; filename=&quot;3.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 499px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999C9E375AA78EDD23&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999C9E375AA78EDD23&quot; width=&quot;499&quot; height=&quot;388&quot; filename=&quot;4.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 32px;&quot;&gt;Build/Publish&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Create Project&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;From a repository URL 선택&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;gitlab repository URL 및 계정 입력&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration / &amp;lt;Root project&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Parameters&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Add new paramenter&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;필요한 파라메터 생성&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991EBB375AA78EDD1A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991EBB375AA78EDD1A&quot; width=&quot;730&quot; height=&quot;350&quot; filename=&quot;5.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration / &amp;lt;Root project&amp;gt; / Project&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;VCS Roots - Edit VCS Root&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;VCS root name&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;VCS root ID&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Default branch&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991422375AA78EDD02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991422375AA78EDD02&quot; width=&quot;730&quot; height=&quot;488&quot; filename=&quot;6.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration / &amp;lt;Root project&amp;gt; / Project&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;General Settings&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Create template&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9963EB375AA78EDE2A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9963EB375AA78EDE2A&quot; width=&quot;730&quot; height=&quot;653&quot; filename=&quot;7.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration / &amp;lt;Root project&amp;gt; / Project / Template&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;General
Settings&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Artifact paths &lt;/span&gt;&lt;span lang=&quot;ko&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;설정&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;ex) &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt;%system.teamcity.build.checkoutDir%/PublishTest/PublishTest/bin/%Configuration%/app.publish/**&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/997548375AA78EDE29&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F997548375AA78EDE29&quot; width=&quot;730&quot; height=&quot;323&quot; filename=&quot;8.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration / &amp;lt;Root project&amp;gt; / Project / Template&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Version
Control Settings&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Attach VCS root&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9910D63A5AA78EDF19&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9910D63A5AA78EDF19&quot; width=&quot;730&quot; height=&quot;448&quot; filename=&quot;9.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Plugin
List&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://plugins.jetbrains.com/teamcity&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt;https://plugins.jetbrains.com/teamcity&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;x-none&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;에서&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;필요한&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;플러그인을&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;다운받아&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;x-none&quot;&gt;Upload plugin zip&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt;]&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;버튼을&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;통해&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;설치&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;ko&quot;&gt;Amazon
S3 Uploader&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family:&amp;quot;Malgun Gothic&amp;quot;&quot; lang=&quot;ko&quot;&gt;&lt;a href=&quot;https://github.com/gonzadocarmo/teamcity-s3-plugin&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;https://github.com/gonzadocarmo/teamcity-s3-plugin&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99A0973A5AA78EDF23&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99A0973A5AA78EDF23&quot; width=&quot;730&quot; height=&quot;243&quot; filename=&quot;10.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;Administration&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;Tools&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;[Install Tool] 버튼을 통해 Nuget 을 설치합니다.&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;자동으로 다운로드가 되지 않을 시 Nuget 사이트에서 다운 받아 업로드&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9938963D5AA872EF18&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9938963D5AA872EF18&quot; width=&quot;730&quot; height=&quot;588&quot; filename=&quot;10-1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Administration / &amp;lt;Root project&amp;gt; / Project / Template&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Build
Steps&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;Nuget Installer 추가 및 설정&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Visual Studio (sln) &lt;/span&gt;&lt;span lang=&quot;ko&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;추가&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;span lang=&quot;ko&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;및&lt;/span&gt;&lt;span lang=&quot;en-US&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;ko&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;설정&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Amazon S3 Uploader 추가 및 설정&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Artifact paths &lt;/span&gt;&lt;span lang=&quot;ko&quot; style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;설정&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang=&quot;ko&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;ex) &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt;%system.teamcity.build.checkoutDir%/PublishTest/PublishTest/bin/%Configuration%/app.publish/**&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;span lang=&quot;ko&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9933603C5AA879DD02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9933603C5AA879DD02&quot; width=&quot;730&quot; height=&quot;299&quot; filename=&quot;10-2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang=&quot;ko&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot; lang=&quot;en-US&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99DF5A3A5AA78EDF05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99DF5A3A5AA78EDF05&quot; width=&quot;730&quot; height=&quot;452&quot; filename=&quot;11.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9903CC3A5AA78EE032&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9903CC3A5AA78EE032&quot; width=&quot;730&quot; height=&quot;516&quot; filename=&quot;12.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;Administration / &amp;lt;Root project&amp;gt; / Project / Template&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;General
Settings&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;Build
Configurations&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;Create
composite build configuration&lt;/li&gt;&lt;li&gt;템플릿을&lt;span lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;ko&quot;&gt;기반으로&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;ko&quot;&gt;필요한&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;x-none&quot;&gt;Build Configuration&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;ko&quot;&gt;생성&lt;/span&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;span lang=&quot;ko&quot;&gt;Build configuration type&lt;span lang=&quot;ko&quot;&gt;을&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;x-none&quot;&gt;Regular&lt;/span&gt;&lt;span lang=&quot;ko&quot;&gt;로&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt; &lt;/span&gt;&lt;span lang=&quot;ko&quot;&gt;설정&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999683415AA87A3305&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999683415AA87A3305&quot; width=&quot;730&quot; height=&quot;547&quot; filename=&quot;13.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;&lt;b&gt;Build&lt;/b&gt;&lt;/li&gt;&lt;ul style=&quot;list-style-type: square;&quot;&gt;&lt;li&gt;해당 Configuration Run&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/995DEE3A5AA78EE12B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F995DEE3A5AA78EE12B&quot; width=&quot;730&quot; height=&quot;167&quot; filename=&quot;14.jpg.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 585px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E405345AA87A7E03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E405345AA87A7E03&quot; width=&quot;585&quot; height=&quot;408&quot; filename=&quot;15.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DevOps</category>
      <category>teamcity .net publish</category>
      <category>teamcity clickonce</category>
      <category>teamcity s3</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/139</guid>
      <comments>https://shine10e.tistory.com/139#entry139comment</comments>
      <pubDate>Tue, 13 Mar 2018 17:53:21 +0900</pubDate>
    </item>
    <item>
      <title>VisualStudio 2017에 .NET 4.0 Bootstrapper 설정</title>
      <link>https://shine10e.tistory.com/138</link>
      <description>&lt;p&gt;Visual Studio 2017에서 .net framework 4.0 버전의 프로그램을&amp;nbsp;&lt;/p&gt;&lt;p&gt;clickone로 배포하기 위해서는 필수구성요소에 포함시켜야 하는데요.&lt;/p&gt;&lt;p&gt;우선 포함시켜야 하는 요소들의 Package가 필요합니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;검색해보니 정리가 잘된 곳이 있더군요.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://git.chemsorly.com/Docker/Msbuilder/tree/master/Files/Bootstrapper/Packages&quot;&gt;https://git.chemsorly.com/Docker/Msbuilder/tree/master/Files/Bootstrapper/Packages&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;복사할 경로는 다음과 같습니다.&lt;/p&gt;&lt;p&gt;C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;XP 일 경우 지난 포스팅 참고&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://shine10e.tistory.com/132?category=330666&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://shine10e.tistory.com/132?category=330666&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 583px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99889A485A8D733A21&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99889A485A8D733A21&quot; width=&quot;583&quot; height=&quot;457&quot; filename=&quot;bootstrapper1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 583px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991DDC485A8D733B05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991DDC485A8D733B05&quot; width=&quot;583&quot; height=&quot;457&quot; filename=&quot;bootstrapper2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Window/WPF</category>
      <category>.net framework bootstrapper</category>
      <category>.net4 bootstrapper</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/138</guid>
      <comments>https://shine10e.tistory.com/138#entry138comment</comments>
      <pubDate>Wed, 21 Feb 2018 22:26:33 +0900</pubDate>
    </item>
    <item>
      <title>Jenkins를 통해 AWS 에 ClickOnce 배포</title>
      <link>https://shine10e.tistory.com/137</link>
      <description>&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;젠킨스를 통해&amp;nbsp;ClickOnce 배포를 AWS S3에 올리는 설정에 대해서 포스팅합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;젠킨스가 설치되었고 MSBuild와 S3 설정과&amp;nbsp;기본 설정들이 완료된 상태에서 시작합니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 697px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99E958335A1F93051A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99E958335A1F93051A&quot; width=&quot;697&quot; height=&quot;625&quot; filename=&quot;build.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;1. 우선 설치된 nuget 경로를 통해 포함된 package 들을 restore 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;nuget: https://www.nuget.org/downloads&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;2. 구성하시는 환경에 맞게 MSBuild에 필요한 파라메터를 설정합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Job Notifications 메뉴에서 필요한 매개변수를 설정합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 541px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99BD9F335A1F890029&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99BD9F335A1F890029&quot; width=&quot;541&quot; height=&quot;686&quot; filename=&quot;parameters.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;EnableMutipleInstall 은 같은 프로그램을 Configuration 별로 설치할 수 있도록 프로젝트 속성값에 설정한 옵션입니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;Configuration 에 따라&amp;nbsp;AssemblyName 과&amp;nbsp;ProductName 을 변경하면 됩니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;프로젝트의 csproj 파일을 편집해서 추가하였습니다.&lt;/span&gt;&lt;/p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;textarea name=&quot;code&quot; class=&quot;brush:csharp;&quot;&gt;&amp;lt;span style=&quot;font-family: &quot;맑은 고딕&quot;, sans-serif;&quot;&amp;gt; 
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;EnableMutipleInstall&amp;gt;false&amp;lt;/EnableMutipleInstall&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;PropertyGroup Condition=&quot;'$(EnableMutipleInstall)|$(Configuration)' == 'true|Debug' &quot;&amp;gt;
    &amp;lt;AssemblyName&amp;gt;Test.Debug&amp;lt;/AssemblyName&amp;gt;
    &amp;lt;ProductName&amp;gt;Dev Test&amp;lt;/ProductName&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;PropertyGroup Condition=&quot;'$(EnableMutipleInstall)|$(Configuration)' == 'true|QA' &quot;&amp;gt;
    &amp;lt;AssemblyName&amp;gt;Test.QA&amp;lt;/AssemblyName&amp;gt;
    &amp;lt;ProductName&amp;gt;QA Test&amp;lt;/ProductName&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
  &amp;lt;PropertyGroup Condition=&quot;'$(EnableMutipleInstall)|$(Configuration)' == 'true|Staging' &quot;&amp;gt;
    &amp;lt;AssemblyName&amp;gt;Test.Staging&amp;lt;/AssemblyName&amp;gt;
    &amp;lt;ProductName&amp;gt;Staging Test&amp;lt;/ProductName&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;
&amp;lt;/span&amp;gt;&lt;/textarea&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;
&lt;/span&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;서명에&amp;nbsp;사용하는 인증서 설정을&amp;nbsp;MSBuild 나 SignTool 을 사용해서 command 에서 하려고 했으나 제대로 되지 않았습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;그래서 VisualStudio에서 설정하고&amp;nbsp;MSBuild가 설치된 OS에도 동일한 인증서와 같은 버전의 VisualStudio 를 설치하여 해결하였습니다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;3. S3 설정을 합니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999758335A1F946122&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999758335A1F946122&quot; width=&quot;730&quot; height=&quot;648&quot; filename=&quot;s3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;추가&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;- VS2017일 경우 MSBuild 경로&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;-&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0); background-color: rgb(255, 255, 255); font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif; font-size: 10pt;&quot;&gt;MSB4044 &lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 10pt; white-space: pre-wrap; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;오류 발생시 Jenkins 서비스가 사용자 계정으로 로그인 되어 있는지 확인&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99D6944B5AA67D210D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99D6944B5AA67D210D&quot; width=&quot;730&quot; height=&quot;537&quot; filename=&quot;jenkins.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(255, 0, 0); background-color: rgb(255, 255, 255); font-size: 14px; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-size: 10pt; white-space: pre-wrap; font-family: &amp;quot;맑은 고딕&amp;quot;, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Languages/C#</category>
      <category>jenkins clickonce aws</category>
      <category>wpf multi install</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/137</guid>
      <comments>https://shine10e.tistory.com/137#entry137comment</comments>
      <pubDate>Thu, 30 Nov 2017 14:43:08 +0900</pubDate>
    </item>
    <item>
      <title>ClickOnce Custom Publish Page</title>
      <link>https://shine10e.tistory.com/135</link>
      <description>&lt;p&gt;CI를 젠킨스로 하게 되면서 빌드 뿐만 아니라 배포까지 넣게 되었는데 VisualStudio 에서 배포 옵션으로 설정한 배포 웹페이지는 msbuild 로는 생성이 되지 않아서 자료를 찾던 중 커스텀하게 만들 수 있는 방법을 찾게 되었습니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;원문:&amp;nbsp;&lt;a href=&quot;https://wallism.wordpress.com/2009/12/08/clickonce-creating-publish-page-from-msbuild/&quot;&gt;https://wallism.wordpress.com/2009/12/08/clickonce-creating-publish-page-from-msbuild/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간단하게 요약하면&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1. 템플릿으로 사용할 html 을 만들어 프로젝트에 포함합니다. ( 프로젝트내 Publish 폴더를 만들어 포함했습니다. )&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;한글로 변환한 템플릿 첨부합니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/213A1E45584A6FD826&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/html.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;index.template.html&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a style=&quot;&quot; class=&quot;txc-file&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;2. .targets 파일을 만들어 프로젝트에 포함합니다. ( Publish.targets 이름으로 만들었습니다. )&lt;/p&gt;
&lt;textarea name=&quot;code&quot; class=&quot;brush:csharp;&quot;&gt; 
&amp;lt;Project ToolsVersion=&quot;14.0&quot; DefaultTargets=&quot;Build&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&amp;gt;
  &amp;lt;PropertyGroup&amp;gt;
    &amp;lt;PublishFilePath&amp;gt;$(MSBuildProjectDirectory)\$(PublishDir)index.html&amp;lt;/PublishFilePath&amp;gt;
  &amp;lt;/PropertyGroup&amp;gt;

  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;Tokens Include=&quot;PublisherName&quot;&amp;gt;
      &amp;lt;ReplacementValue&amp;gt;$(PublisherName)&amp;lt;/ReplacementValue&amp;gt;
      &amp;lt;Visible&amp;gt;false&amp;lt;/Visible&amp;gt;
    &amp;lt;/Tokens&amp;gt;
    &amp;lt;Tokens Include=&quot;ProductName&quot;&amp;gt;
      &amp;lt;ReplacementValue&amp;gt;$(ProductName)&amp;lt;/ReplacementValue&amp;gt;
      &amp;lt;Visible&amp;gt;false&amp;lt;/Visible&amp;gt;
    &amp;lt;/Tokens&amp;gt;
    &amp;lt;Tokens Include=&quot;ApplicationVersion&quot;&amp;gt;
      &amp;lt;ReplacementValue&amp;gt;$(ApplicationVersion)&amp;lt;/ReplacementValue&amp;gt;
      &amp;lt;Visible&amp;gt;false&amp;lt;/Visible&amp;gt;
    &amp;lt;/Tokens&amp;gt;
    &amp;lt;Tokens Include=&quot;Prerequsites&quot;&amp;gt;
      &amp;lt;ReplacementValue&amp;gt;@(BootstrapperPackage-&amp;gt;'&amp;lt;li&amp;gt;%(ProductName)&amp;lt;/li&amp;gt;','%0D%0A')&amp;lt;/ReplacementValue&amp;gt;
      &amp;lt;Visible&amp;gt;false&amp;lt;/Visible&amp;gt;
    &amp;lt;/Tokens&amp;gt;
    &amp;lt;Tokens Include=&quot;Username&quot;&amp;gt;
      &amp;lt;ReplacementValue&amp;gt;$(Username)&amp;lt;/ReplacementValue&amp;gt;
      &amp;lt;Visible&amp;gt;false&amp;lt;/Visible&amp;gt;
    &amp;lt;/Tokens&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;

  &amp;lt;Target Name=&quot;AfterPublish&quot;&amp;gt;
    &amp;lt;Time Format=&quot;dd/MM/yyyy HH:mm&quot;&amp;gt;
      &amp;lt;Output TaskParameter=&quot;FormattedTime&quot; PropertyName=&quot;PublishTime&quot; /&amp;gt;
    &amp;lt;/Time&amp;gt;
    &amp;lt;!-- Finalise the publish.htm template file and copy it to the publish location --&amp;gt;
    &amp;lt;TemplateFile Template=&quot;Publish\index.template.html&quot; Tokens=&quot;@(Tokens)&quot; OutputFilename=&quot;$(PublishFilePath)&quot; /&amp;gt;
    &amp;lt;FileUpdate Files=&quot;$(PublishFilePath)&quot; Regex=&quot;\${PublishTime}&quot; ReplacementText=&quot;$(PublishTime)&quot; /&amp;gt;
  &amp;lt;/Target&amp;gt;
&amp;lt;/Project&amp;gt;
&lt;/textarea&gt;&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;3. nuget 으로 MSBuildTasks를 설치합니다.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;font face=&quot;monospace&quot;&gt;&lt;span style=&quot;font-size: 13.3333px; white-space: pre-wrap;&quot;&gt;4. 프로젝트를 편집으로 바꿔서 만든 .targets 파일을 포함합니다. (맨 밑줄에 넣었습니다. )&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;
&lt;textarea name=&quot;code&quot; class=&quot;brush:csharp;&quot;&gt;  &amp;lt;Import Project=&quot;Publish.targets&quot; /&amp;gt;
&lt;/textarea&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5. msbuild로 테스트 해보면 다음과 같이 생성됩니다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;msbuild /t:Publish /p:Configuration=Release&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2208444E584A795624&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2208444E584A795624&quot; width=&quot;730&quot; height=&quot;231&quot; filename=&quot;capture_publish_page.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Languages/C#</category>
      <category>ClickOnce MsBuild</category>
      <category>ClickOnce Publish Page</category>
      <category>ClickOnce Publish Page MsBuild</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/135</guid>
      <comments>https://shine10e.tistory.com/135#entry135comment</comments>
      <pubDate>Fri, 9 Dec 2016 18:31:06 +0900</pubDate>
    </item>
    <item>
      <title>ClickOnce Custom Bootstrap ( Visual C++ redistributable )</title>
      <link>https://shine10e.tistory.com/134</link>
      <description>&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;ClickOnce&amp;nbsp;배포시 Bootstrap에서&lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;필요한 버전의&amp;nbsp;Visual C++ R&lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;edistributable 을 추가하기 위한 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;설치된 Visual Studio 버전의 Bootstrapper\Packages 폴더안에 새로운 폴더를 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;vs2015 기준 ( C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages )&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;Visual C++ redistributable 2012을 추가해보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;기존 vcredist_x86 폴더를 복사 후 이름을 변경합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;product.xml 파일을 수정합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;textarea class=&quot;brush:xml;&quot; name=&quot;code&quot;&gt; 
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt; 

&amp;lt;Product
  xmlns=&quot;http://schemas.microsoft.com/developer/2004/01/bootstrapper&quot;
  ProductCode=&quot;Microsoft.Visual.C++.11.0.x86&quot;
&amp;gt;

  &amp;lt;!-- Defines list of files to be copied on build --&amp;gt;
  &amp;lt;PackageFiles&amp;gt;
    &amp;lt;PackageFile Name=&quot;vcredist_x86.exe&quot; HomeSite=&quot;VCRedistExe&quot;/&amp;gt;
  &amp;lt;/PackageFiles&amp;gt;
  &amp;lt;InstallChecks&amp;gt;
    &amp;lt;MsiProductCheck Property=&quot;VCRedistInstalled&quot; Product=&quot;{196BB40D-1578-3D01-B289-BEFC77A11A1E}&quot;/&amp;gt;
  &amp;lt;/InstallChecks&amp;gt;
  
  &amp;lt;!-- Defines how to invoke the setup for the Visual C++ 11.0 redist --&amp;gt;
  &amp;lt;!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of EstimatedDiskSpace --&amp;gt;
  &amp;lt;Commands Reboot=&quot;Defer&quot;&amp;gt;
    &amp;lt;Command PackageFile=&quot;vcredist_x86.exe&quot; Arguments=' /q:a '&amp;gt;

      &amp;lt;!-- These checks determine whether the package is to be installed --&amp;gt;
      &amp;lt;InstallConditions&amp;gt;
        &amp;lt;BypassIf Property=&quot;VCRedistInstalled&quot; Compare=&quot;ValueGreaterThanOrEqualTo&quot; Value=&quot;3&quot;/&amp;gt;
        &amp;lt;!-- Block install if user does not have admin privileges --&amp;gt;
        &amp;lt;FailIf Property=&quot;AdminUser&quot; Compare=&quot;ValueEqualTo&quot; Value=&quot;false&quot; String=&quot;AdminRequired&quot;/&amp;gt;

        &amp;lt;!-- Block install on Win95 --&amp;gt;
        &amp;lt;FailIf Property=&quot;Version9X&quot; Compare=&quot;VersionLessThan&quot; Value=&quot;4.10&quot; String=&quot;InvalidPlatformWin9x&quot;/&amp;gt;

        &amp;lt;!-- Block install on NT 4 or less --&amp;gt;
        &amp;lt;FailIf Property=&quot;VersionNT&quot; Compare=&quot;VersionLessThan&quot; Value=&quot;5.00&quot; String=&quot;InvalidPlatformWinNT&quot;/&amp;gt;

      &amp;lt;/InstallConditions&amp;gt;
      
      &amp;lt;ExitCodes&amp;gt;
        &amp;lt;ExitCode Value=&quot;0&quot; Result=&quot;Success&quot;/&amp;gt;
        &amp;lt;ExitCode Value=&quot;3010&quot; Result=&quot;SuccessReboot&quot;/&amp;gt;
        &amp;lt;DefaultExitCode Result=&quot;Fail&quot; FormatMessageFromSystem=&quot;true&quot; String=&quot;GeneralFailure&quot; /&amp;gt;
      &amp;lt;/ExitCodes&amp;gt;
      
    &amp;lt;/Command&amp;gt;
  &amp;lt;/Commands&amp;gt;
&amp;lt;/Product&amp;gt;
&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;InstallConditions 에서 설치 조건을 설정할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;XP&amp;nbsp;일경우 조건들을 수정하거나 주석 처리해주세요.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;en 폴더 안의 package.xml 파일을 수정합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;textarea class=&quot;brush:xml;&quot; name=&quot;code&quot;&gt; 
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;

&amp;lt;Package
  xmlns=&quot;http://schemas.microsoft.com/developer/2004/01/bootstrapper&quot;
  Name=&quot;DisplayName&quot;
  Culture=&quot;Culture&quot;
&amp;gt;

    &amp;lt;!-- Defines a localizable string table for error messages--&amp;gt;
    &amp;lt;Strings&amp;gt;
        &amp;lt;String Name=&quot;DisplayName&quot;&amp;gt;Visual C++ 2012 Runtime Libraries (x86)&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;Culture&quot;&amp;gt;en&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;AdminRequired&quot;&amp;gt;You do not have the permissions required to install Visual C++ 2012 Runtime Libraries (x86). Please contact your administrator.&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;InvalidPlatformWin9x&quot;&amp;gt;Installation of Visual C++ 2012 Runtime Libraries (x86) is not supported on Windows 95. Contact your application vendor.&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;InvalidPlatformWinNT&quot;&amp;gt;Installation of Visual C++ 2012 Runtime Libraries (x86) is not supported on Windows NT 4.0. Contact your application vendor.&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;GeneralFailure&quot;&amp;gt;A failure occurred attempting to install Visual C++ 2012 Runtime Libraries (x86).&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;VCRedistExe&quot;&amp;gt;http://go.microsoft.com/fwlink/?LinkID=247126&amp;amp;clcid=0x409&amp;lt;/String&amp;gt;
    &amp;lt;/Strings&amp;gt;
&amp;lt;/Package&amp;gt;
&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치할 프로그램을 웹에서 다운 받거나 로컬에 지정할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 웹에서 다운 받을 경우&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;Verdana&quot;&gt;VCRedistExe 의 경로를 &lt;/font&gt;다운 받을 주소로 변경합니다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;strike&gt;&amp;lt;String Name=&quot;VCRedistExe&quot;&amp;gt;http://go.microsoft.com/fwlink/?LinkID=247126&amp;amp;amp;clcid=0x409&amp;lt;/String&amp;gt;&lt;/strike&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family:Verdana;&quot;&gt;&amp;lt;String Name=&quot;VCRedistExe&quot;&amp;gt;&lt;/span&gt;&lt;a href=&quot;http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe&quot;&gt;http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe&lt;/a&gt;&amp;lt;/String&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;다음 주소에서 각 버전의 주소를 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;a href=&quot;https://npackd.appspot.com/p/com.microsoft.VisualCPPRedistributable/11.0.61030&quot;&gt;https://npackd.appspot.com/p/com.microsoft.VisualCPPRedistributable/11.0.61030&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;strong&gt;2. 로컬 파일을 사용할 경우&lt;/strong&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;product.xml 파일과 같은 위치에 해당 버전의 redistributable&amp;nbsp;파일을 다운받아 놓습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;product.xml 의 HomeSite를 삭제합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;strike&gt;&amp;lt;PackageFile Name=&quot;vcredist_x86.exe&quot; HomeSite=&quot;VCRedistExe&quot;/&amp;gt;&lt;/strike&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;strike&gt;&lt;/strike&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;font face=&quot;Verdana&quot;&gt;&amp;lt;PackageFile Name=&quot;vcredist_x86.exe&quot;/&amp;gt;&lt;/font&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 558px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2316A73456CC1E0F1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2316A73456CC1E0F1C&quot; width=&quot;558&quot; height=&quot;189&quot; filename=&quot;bootstrap.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;Visual C++ 2012 Redistributable (x86) 은 설치 여부 확인이 제대로 되지 않아서 계속 설치하는 문제가 발생하여&lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;많은 시도끝에 &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;해결된 방안을 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;font face=&quot;돋움&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;font face=&quot;돋움&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;MsiProductCheck&amp;nbsp;대신 RegistryCheck 를 사용하여 설치된 레지스트리 값을 비교하여 설치여부를 판단했습니다.&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;font face=&quot;돋움&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Dependencies\{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;strong&gt;product.xml&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;textarea class=&quot;brush:xml;&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt; 

&amp;lt;Product xmlns=&quot;http://schemas.microsoft.com/developer/2004/01/bootstrapper&quot;ProductCode=&quot;Microsoft.Visual.C++.11.0.x86&quot;&amp;gt;

  &amp;lt;!-- Defines list of files to be copied on build --&amp;gt;
  &amp;lt;PackageFiles CopyAllPackageFiles=&quot;false&quot;&amp;gt;
    &amp;lt;PackageFile Name=&quot;vcredist_x86.exe&quot; HomeSite=&quot;VCRedistExe&quot; Hash=&quot;96b377a27ac5445328cbaae210fc4f0aaa750d3f&quot;/&amp;gt;
  &amp;lt;/PackageFiles&amp;gt;
  &amp;lt;InstallChecks&amp;gt;
    &amp;lt;!--&amp;lt;MsiProductCheck Property=&quot;VCRedistInstalled&quot;/&amp;gt;--&amp;gt;
	&amp;lt;RegistryCheck Property=&quot;VCRedistInstalled&quot; Key=&quot;HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Dependencies\{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}&quot; Value=&quot;Version&quot;/&amp;gt;
  &amp;lt;/InstallChecks&amp;gt;
  
  &amp;lt;!-- Defines how to invoke the setup for the Visual C++ 11.0 redist --&amp;gt;
  &amp;lt;!-- TODO: Needs EstrimatedTempSpace, LogFile, and an update of EstimatedDiskSpace --&amp;gt;
  &amp;lt;Commands Reboot=&quot;Defer&quot;&amp;gt;
    &amp;lt;Command PackageFile=&quot;vcredist_x86.exe&quot; Arguments=' /q:a '&amp;gt;

      &amp;lt;!-- These checks determine whether the package is to be installed --&amp;gt;
      &amp;lt;InstallConditions&amp;gt;
        &amp;lt;BypassIf Property=&quot;VCRedistInstalled&quot; Compare=&quot;ValueEqualTo&quot; Value=&quot;11.0.61030.0&quot;/&amp;gt;
        &amp;lt;!-- Block install if user does not have admin privileges --&amp;gt;
        &amp;lt;FailIf Property=&quot;AdminUser&quot; Compare=&quot;ValueEqualTo&quot; Value=&quot;false&quot; String=&quot;AdminRequired&quot;/&amp;gt;

        &amp;lt;!-- Block install on Win95 --&amp;gt;
        &amp;lt;FailIf Property=&quot;Version9X&quot; Compare=&quot;VersionLessThan&quot; Value=&quot;4.10&quot; String=&quot;InvalidPlatformWin9x&quot;/&amp;gt;

        &amp;lt;!-- Block install on NT 4 or less --&amp;gt;
        &amp;lt;FailIf Property=&quot;VersionNT&quot; Compare=&quot;VersionLessThan&quot; Value=&quot;5.1.2&quot; String=&quot;InvalidPlatformWinNT&quot;/&amp;gt;

      &amp;lt;/InstallConditions&amp;gt;
      
      &amp;lt;ExitCodes&amp;gt;
        &amp;lt;ExitCode Value=&quot;0&quot; Result=&quot;Success&quot;/&amp;gt;
        &amp;lt;ExitCode Value=&quot;3010&quot; Result=&quot;SuccessReboot&quot;/&amp;gt;
        &amp;lt;DefaultExitCode Result=&quot;Fail&quot; FormatMessageFromSystem=&quot;true&quot; String=&quot;GeneralFailure&quot; /&amp;gt;
      &amp;lt;/ExitCodes&amp;gt;   

    &amp;lt;/Command&amp;gt;
  &amp;lt;/Commands&amp;gt;
&amp;lt;/Product&amp;gt;
&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;font face=&quot;Verdana&quot;&gt;&lt;strong&gt;package.xml&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;textarea class=&quot;brush:xml;&quot; name=&quot;code&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&amp;gt;

&amp;lt;Package
  xmlns=&quot;http://schemas.microsoft.com/developer/2004/01/bootstrapper&quot;
  Name=&quot;DisplayName&quot;
  Culture=&quot;Culture&quot;
&amp;gt;
    &amp;lt;!-- Defines a localizable string table for error messages--&amp;gt;
    &amp;lt;Strings&amp;gt;
        &amp;lt;String Name=&quot;DisplayName&quot;&amp;gt;Visual C++ 2012 Runtime Libraries (x86)&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;Culture&quot;&amp;gt;en&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;AdminRequired&quot;&amp;gt;You do not have the permissions required to install Visual C++ 2012 Runtime Libraries (x86). Please contact your administrator.&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;InvalidPlatformWin9x&quot;&amp;gt;Installation of Visual C++ 2012 Runtime Libraries (x86) is not supported on Windows 95. Contact your application vendor.&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;InvalidPlatformWinNT&quot;&amp;gt;Installation of Visual C++ 2012 Runtime Libraries (x86) is not supported on Windows NT 4.0. Contact your application vendor.&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;GeneralFailure&quot;&amp;gt;A failure occurred attempting to install Visual C++ 2012 Runtime Libraries (x86).&amp;lt;/String&amp;gt;
        &amp;lt;String Name=&quot;VCRedistExe&quot;&amp;gt;http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe&amp;lt;/String&amp;gt;
    &amp;lt;/Strings&amp;gt;
&amp;lt;/Package&amp;gt;
&lt;/textarea&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;reference: &lt;a href=&quot;https://msdn.microsoft.com/ko-kr/library/ms229432.aspx&quot;&gt;https://msdn.microsoft.com/ko-kr/library/ms229432.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;MARGIN-LEFT: 4em&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://stackoverflow.com/questions/12206314/detect-if-visual-c-redistributable-for-visual-studio-2012-is-installed&quot;&gt;http://stackoverflow.com/questions/12206314/detect-if-visual-c-redistributable-for-visual-studio-2012-is-installed&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Languages/C#</category>
      <category>clickonce bootstrap redistributable</category>
      <category>clickonce bootstrap redistributable 2012</category>
      <category>clickonce custom bootstrap</category>
      <category>clickonce redistributable 2012</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/134</guid>
      <comments>https://shine10e.tistory.com/134#entry134comment</comments>
      <pubDate>Tue, 23 Feb 2016 17:55:06 +0900</pubDate>
    </item>
    <item>
      <title>Custom Button</title>
      <link>https://shine10e.tistory.com/133</link>
      <description>&lt;P&gt;개발을 진행하다 보면 다양한 스타일의 버튼을 만들게 되는데요.&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;LINE-HEIGHT: 1.5&quot;&gt;Round 스타일이나 Mouse Over, Pressed 같은 경우에 색을 변경해야 경우가 많습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;이런 속성을 추가한&amp;nbsp;Custom Button을 만들어 사용하는 것도 한 방법이 되겠습니다.&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;그래서 CornerRadius&amp;nbsp;와 Mouse Over, Pressed 이벤트시 Background 와 BorderBrush 의 색상을 변경하는 프로퍼티를 가지는&lt;/P&gt;
&lt;P&gt;간단한 버튼 컨트롤을 만들어 보았습니다.&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 215px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2744663A56AA2D8104&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2744663A56AA2D8104&quot; width=&quot;215&quot; height=&quot;116&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 231px; LINE-HEIGHT: 1.5; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/233CD23A56AA2D8408&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F233CD23A56AA2D8408&quot; width=&quot;231&quot; height=&quot;120&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;LINE-HEIGHT: 1.5&quot;/&gt;&lt;/span&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 232px; LINE-HEIGHT: 1.5; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/210EB13A56AA2D8421&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F210EB13A56AA2D8421&quot; width=&quot;232&quot; height=&quot;130&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;LINE-HEIGHT: 1.5&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/P&gt;&lt;TEXTAREA class=brush:csharp; name=code&gt; 
        &amp;lt;control:CustomButton Width=&quot;150&quot; Height=&quot;50&quot; BorderThickness=&quot;2&quot;
                              CornerRadius=&quot;20&quot; 
                              MouseOverBackgroundBrush=&quot;LightGreen&quot; MouseOverBorderBrush=&quot;Green&quot;
                              PressedBackgroundBrush=&quot;LightBlue&quot; PressedBorderBrush=&quot;Blue&quot;/&amp;gt;
&lt;/TEXTAREA&gt; 
&lt;P&gt;&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;x&lt;/B&gt;&lt;B style=&quot;LINE-HEIGHT: 1.5&quot;&gt;aml&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;TEXTAREA class=brush:csharp; name=code&gt;&amp;lt;Button x:Class=&quot;Wpf.Controls.CustomButton&quot;
             xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
             xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
             xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot; 
             xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot; 
             mc:Ignorable=&quot;d&quot; Template=&quot;{DynamicResource ButtonTemplate}&quot;&amp;gt;
    &amp;lt;Button.Resources&amp;gt;
        &amp;lt;ControlTemplate x:Key=&quot;ButtonTemplate&quot; TargetType=&quot;{x:Type Button}&quot;&amp;gt;
            &amp;lt;Border x:Name=&quot;border&quot; CornerRadius=&quot;{Binding CornerRadius, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}}&quot; BorderBrush=&quot;{TemplateBinding BorderBrush}&quot; BorderThickness=&quot;{TemplateBinding BorderThickness}&quot; Background=&quot;{TemplateBinding Background}&quot; SnapsToDevicePixels=&quot;True&quot;&amp;gt;
                &amp;lt;ContentPresenter x:Name=&quot;contentPresenter&quot; ContentTemplate=&quot;{TemplateBinding ContentTemplate}&quot; Content=&quot;{TemplateBinding Content}&quot; ContentStringFormat=&quot;{TemplateBinding ContentStringFormat}&quot; Focusable=&quot;False&quot; HorizontalAlignment=&quot;{TemplateBinding HorizontalContentAlignment}&quot; Margin=&quot;{TemplateBinding Padding}&quot; RecognizesAccessKey=&quot;True&quot; SnapsToDevicePixels=&quot;{TemplateBinding SnapsToDevicePixels}&quot; VerticalAlignment=&quot;{TemplateBinding VerticalContentAlignment}&quot;/&amp;gt;
            &amp;lt;/Border&amp;gt;
            &amp;lt;ControlTemplate.Triggers&amp;gt;
                &amp;lt;Trigger Property=&quot;IsDefaulted&quot; Value=&quot;True&quot;&amp;gt;
                    &amp;lt;Setter Property=&quot;BorderBrush&quot; TargetName=&quot;border&quot; Value=&quot;{DynamicResource {x:Static SystemColors.HighlightBrushKey}}&quot;/&amp;gt;
                &amp;lt;/Trigger&amp;gt;
                &amp;lt;Trigger Property=&quot;IsMouseOver&quot; Value=&quot;True&quot;&amp;gt;
                    &amp;lt;Setter Property=&quot;Background&quot; TargetName=&quot;border&quot; Value=&quot;{Binding MouseOverBackgroundBrush, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}, TargetNullValue=#FFBEE6FD}&quot;/&amp;gt;
                    &amp;lt;Setter Property=&quot;BorderBrush&quot; TargetName=&quot;border&quot; Value=&quot;{Binding MouseOverBorderBrush, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}, TargetNullValue=#FF3C7FB1}&quot;/&amp;gt;
                &amp;lt;/Trigger&amp;gt;
                &amp;lt;Trigger Property=&quot;IsPressed&quot; Value=&quot;True&quot;&amp;gt;
                    &amp;lt;Setter Property=&quot;Background&quot; TargetName=&quot;border&quot; Value=&quot;{Binding PressedBackgroundBrush, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}, TargetNullValue=#FFC4E5F6}&quot;/&amp;gt;
                    &amp;lt;Setter Property=&quot;BorderBrush&quot; TargetName=&quot;border&quot; Value=&quot;{Binding PressedBorderBrush, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Button}, TargetNullValue=#FF2C628B}&quot;/&amp;gt;
                &amp;lt;/Trigger&amp;gt;
                &amp;lt;Trigger Property=&quot;ToggleButton.IsChecked&quot; Value=&quot;True&quot;&amp;gt;
                    &amp;lt;Setter Property=&quot;Background&quot; TargetName=&quot;border&quot; Value=&quot;#FFBCDDEE&quot;/&amp;gt;
                    &amp;lt;Setter Property=&quot;BorderBrush&quot; TargetName=&quot;border&quot; Value=&quot;#FF245A83&quot;/&amp;gt;
                &amp;lt;/Trigger&amp;gt;
                &amp;lt;Trigger Property=&quot;IsEnabled&quot; Value=&quot;False&quot;&amp;gt;
                    &amp;lt;Setter Property=&quot;Background&quot; TargetName=&quot;border&quot; Value=&quot;#FFF4F4F4&quot;/&amp;gt;
                    &amp;lt;Setter Property=&quot;BorderBrush&quot; TargetName=&quot;border&quot; Value=&quot;#FFADB2B5&quot;/&amp;gt;
                    &amp;lt;Setter Property=&quot;TextElement.Foreground&quot; TargetName=&quot;contentPresenter&quot; Value=&quot;#FF838383&quot;/&amp;gt;
                &amp;lt;/Trigger&amp;gt;
            &amp;lt;/ControlTemplate.Triggers&amp;gt;
        &amp;lt;/ControlTemplate&amp;gt;
    &amp;lt;/Button.Resources&amp;gt;
&amp;lt;/Button&amp;gt;
&lt;/TEXTAREA&gt;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&lt;/P&gt;
&lt;DIV&gt;&lt;B&gt;cs&lt;/B&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;TEXTAREA class=brush:csharp; name=code&gt;    public partial class CustomButton : Button
    {
        #region Dependency Property

        #region CornerRadius

        public static readonly DependencyProperty CornerRadiusProperty =
            DependencyProperty.Register(&quot;CornerRadius&quot;,
                typeof(CornerRadius),
                typeof(CustomButton),
                new PropertyMetadata(new CornerRadius(0)));

        public CornerRadius CornerRadius
        {
            get { return (CornerRadius)GetValue(CornerRadiusProperty); }
            set { SetValue(CornerRadiusProperty, value); }
        }

        #endregion

        #region MouseOverBackgroundBrush

        public static readonly DependencyProperty MouseOverBackgroundBrushProperty =
            DependencyProperty.Register(&quot;MouseOverBackgroundBrush&quot;,
                typeof(Brush),
                typeof(CustomButton));

        public Brush MouseOverBackgroundBrush
        {
            get { return (Brush)GetValue(MouseOverBackgroundBrushProperty); }
            set { SetValue(MouseOverBackgroundBrushProperty, value); }
        }

        #endregion

        #region MouseOverBorderBrush

        public static readonly DependencyProperty MouseOverBorderBrushProperty =
            DependencyProperty.Register(&quot;MouseOverBorderBrush&quot;,
                typeof(Brush),
                typeof(CustomButton));

        public Brush MouseOverBorderBrush
        {
            get { return (Brush)GetValue(MouseOverBorderBrushProperty); }
            set { SetValue(MouseOverBorderBrushProperty, value); }
        }

        #endregion

        #region PressedBackgroundBrush

        public static readonly DependencyProperty PressedBackgroundBrushProperty =
            DependencyProperty.Register(&quot;PressedBackgroundBrush&quot;,
                typeof(Brush),
                typeof(CustomButton));

        public Brush PressedBackgroundBrush
        {
            get { return (Brush)GetValue(PressedBackgroundBrushProperty); }
            set { SetValue(PressedBackgroundBrushProperty, value); }
        }

        #endregion

        #region PressedBorderBrush

        public static readonly DependencyProperty PressedBorderBrushProperty =
            DependencyProperty.Register(&quot;PressedBorderBrush&quot;,
                typeof(Brush),
                typeof(CustomButton));

        public Brush PressedBorderBrush
        {
            get { return (Brush)GetValue(PressedBorderBrushProperty); }
            set { SetValue(PressedBorderBrushProperty, value); }
        }

        #endregion

        #endregion

        public CustomButton()
        {
            InitializeComponent();
        }
    }
&lt;/TEXTAREA&gt; 
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/22546F3659281BC81C&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;CustomButton.xaml&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2168E03659281BC80E&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;CustomButton.xaml.cs&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;</description>
      <category>Window/WPF</category>
      <category>wpf custom button</category>
      <category>wpf round button</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/133</guid>
      <comments>https://shine10e.tistory.com/133#entry133comment</comments>
      <pubDate>Fri, 29 Jan 2016 00:19:21 +0900</pubDate>
    </item>
    <item>
      <title>ClickOnce Custom BootStrapper</title>
      <link>https://shine10e.tistory.com/132</link>
      <description>&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;ClickOnce 필수 구성 요소에 WIC (Windows Imaging Component ) 를 포함 시켜야 하는 경우가 있어서&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;검색해 보니 해당 Visual Studio 버전의 &lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;Bootstrapper 폴더에 패키지를 넣으면&amp;nbsp;해결.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;reference:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://wizzard0.livejournal.com/213674.html&quot;&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;http://wizzard0.livejournal.com/213674.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;Visual Studio 2015 기준&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;의존성을 갖는 경우 해당&lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;.NET Framework 버전 폴더의&lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;Product.xml 파일에 다음 &lt;/span&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;구문을 추가한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp; &amp;lt;RelatedProducts&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;EitherProducts&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DependsOnProduct Code=&quot;Microsoft.Windows.Installer.3.1&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DependsOnProduct Code=&quot;Microsoft.Windows.Installer.4.5&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/EitherProducts&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DependsOnProduct Code=&quot;Windows.Imaging.Component&quot; /&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;IncludesProduct Code=&quot;.NETFramework,Version=v4.0,Profile=Client&quot; /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp; &amp;lt;/RelatedProducts&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;하지만 Windows XP, 2003 에서만 WIC를 포함하고 윈도우 비스타 이상부터는 WIC를 포함하면 설치오류가 발생한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;그래서 윈도우 비스타 이후부터는 ClickOnce로 설치시 설치되지 않도록 수정해줘야 한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;line-height: 1.5; font-family: Verdana;&quot;&gt;수정한 product.xml 파일을 첨부한다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;참고 사이트:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://reasty.tistory.com/10&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;&lt;span style=&quot;font-family: Verdana;&quot;&gt;http://reasty.tistory.com/10&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2753493B56AA27A90C&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/unknown.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;product.xml&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/993BEB4C5A8D6EA029&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/exe.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;wic_bootstrapper_patch.exe&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a class=&quot;txc-file&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <category>Languages/C#</category>
      <category>clickonce bottstrapper</category>
      <category>clickonce custom bootstrapper</category>
      <category>clickonce wic</category>
      <category>clickonce windows imaging component</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/132</guid>
      <comments>https://shine10e.tistory.com/132#entry132comment</comments>
      <pubDate>Tue, 1 Dec 2015 18:42:17 +0900</pubDate>
    </item>
    <item>
      <title>Virtual Keyboard ( Hangul )</title>
      <link>https://shine10e.tistory.com/131</link>
      <description>&lt;p&gt;WPF 프로젝트 진행 중 필요에 의해 만들게 된&amp;nbsp;한/영 가상 키보드입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;키 이벤트 발생은 &lt;a class=&quot;tx-link&quot; href=&quot;http://inputsimulator.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Windows Input Simulator&lt;/a&gt; 를 사용하였고 XP에서는 한글 조합이 되지 않는 경우가 발생하여 키보드와 마우스를 훅킹하여 특정 이벤트에 대한 예외처리를 하였습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;textarea class=&quot;brush:csharp;&quot; style=&quot;HEIGHT: 759px; WIDTH: 835px&quot; rows=&quot;1&quot; cols=&quot;1&quot; name=&quot;code&quot;&gt; 
       private static IntPtr KeyboardProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode == Win32Api.HC_ACTION)
            {
                uint wParamValue = (uint)wParam;
                long lParamValue = (long)lParam;

                // 229 ( 0xE5 ) : VK_PROCESSKEY ( IME PROCESS key )
                if ((wParamValue == 229 &amp;amp;&amp;amp; lParamValue == -2147483647) || (wParamValue == 229 &amp;amp;&amp;amp; lParamValue == -2147483648))
                {
                    if (IsHookingArea())
                    {
                        return (IntPtr)1;
                    }
                }
            }

            return Win32Api.CallNextHookEx(_keyboardId, nCode, wParam, lParam);
        }

        private static IntPtr MouseProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode &amp;gt;= 0)
            {
                _mouseParam = (Win32Api.MOUSEHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(Win32Api.MOUSEHOOKSTRUCT));
                var mouseMessage = (Win32Api.MouseMessages)wParam;

                if (UseGlobal)
                {
                    if (mouseMessage == Win32Api.MouseMessages.WM_LBUTTONDOWN || mouseMessage == Win32Api.MouseMessages.WM_LBUTTONUP)
                    {
                        var onMouseClickEvent = MouseClickEvent;
                        if (onMouseClickEvent != null)
                        {
                            onMouseClickEvent(_mouseParam.pt, mouseMessage);
                        }

                        if (mouseMessage == Win32Api.MouseMessages.WM_LBUTTONDOWN &amp;amp;&amp;amp; IsHookingArea())
                        {
                            return (IntPtr)1;
                        }
                    }
                }
            }

            return Win32Api.CallNextHookEx(_mouseId, nCode, wParam, lParam);
        }
&lt;/textarea&gt; 
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;프로젝트에 필요한 키 배열만 갖추고 있으니 필요한 키는 만들어 사용하시기 바랍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;source:&lt;/strong&gt; &lt;a href=&quot;https://github.com/daeyeol/WpfKeyboard&quot;&gt;https://github.com/daeyeol/wpf-virtual-keyboard&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 영문&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/276645435653132022&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F276645435653132022&quot; width=&quot;730&quot; height=&quot;325&quot; filename=&quot;keyboard1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 한글&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2565C0435653132223&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2565C0435653132223&quot; width=&quot;730&quot; height=&quot;323&quot; filename=&quot;keyboard2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;- 키패드&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/250AD843565313252D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F250AD843565313252D&quot; width=&quot;730&quot; height=&quot;324&quot; filename=&quot;keyboard3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Window/WPF</category>
      <category>hangul virtual keyboard</category>
      <category>korean virtual keyboard</category>
      <category>wpf virtual keyboard</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/131</guid>
      <comments>https://shine10e.tistory.com/131#entry131comment</comments>
      <pubDate>Mon, 23 Nov 2015 22:29:16 +0900</pubDate>
    </item>
    <item>
      <title>Pixel Shader Effect in WPF</title>
      <link>https://shine10e.tistory.com/130</link>
      <description>&lt;p&gt;WPF 는&amp;nbsp;엘리먼트들에게&amp;nbsp;다양한 효과를 주기 위해서&amp;nbsp;BitmapEffect 와&amp;nbsp;&amp;nbsp;Effect 클래스에서 파생된&amp;nbsp;BlurEffect, DropShadowEffect, ShaderEffect&amp;nbsp;를 사용할 수 있습니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;이번 포스트에서는&amp;nbsp;ShaderEffect&amp;nbsp;클래스를 상속받아&amp;nbsp;사용자 정의 픽셀 셰이더를 만드는 방법과&amp;nbsp;영상의 알파 채널을 제거하는 간단한 샘플을 만들어 보겠습니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;- &lt;/strong&gt;&lt;a tabindex=&quot;9&quot; id=&quot;fileDownload1&quot; class=&quot;FileNameLink&quot; href=&quot;http://wpf.codeplex.com/downloads/get/40167&quot; d:fileid=&quot;40167&quot; d:posturl=&quot;http://wpf.codeplex.com/releases/captureDownload&quot; d:releaseid=&quot;14962&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0066cc&quot;&gt;&lt;strong&gt;Shader Effects BuildTask and Templates&lt;/strong&gt;&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;설치&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1. &lt;a href=&quot;http://wpf.codeplex.com/releases/view/14962%20에서&quot;&gt;http://wpf.codeplex.com/releases/view/14962 &lt;span style=&quot;COLOR: #333333&quot;&gt;에서&lt;/span&gt; &lt;/a&gt;&lt;a tabindex=&quot;9&quot; id=&quot;fileDownload1&quot; class=&quot;FileNameLink&quot; href=&quot;http://wpf.codeplex.com/downloads/get/40167&quot; d:fileid=&quot;40167&quot; d:posturl=&quot;http://wpf.codeplex.com/releases/captureDownload&quot; d:releaseid=&quot;14962&quot;&gt;&lt;u&gt;&lt;font color=&quot;#0066cc&quot;&gt;Shader Effects BuildTask and Templates.zip&lt;/font&gt;&lt;/u&gt;&lt;/a&gt; 을 다운로드 받습니다.&lt;/p&gt;&lt;p&gt;2. 압축을 풀고 ShaderBuildTaskSetup.msi 를 설치합니다.&lt;/p&gt;&lt;p&gt;3. &amp;nbsp;readme.txt 파일 내용대로&amp;nbsp;Templates 폴더를 Visual Studio 가 설치된 폴더의 Templates에 덮어 씌웁니다. ( VS 2012 )&lt;/p&gt;&lt;p&gt;4. 다음 그림과 같이 WPF Shader Effect Library 프로젝트 템플릿이 추가된 것을 확인합니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232F6F3854EE756A11&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232F6F3854EE756A11&quot; width=&quot;730&quot; height=&quot;503&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;5. WPF Shader Effect Library 프로젝트 템플릿으로 프로젝트를 생성하면 다음과 같은 기본 아이템들이 자동으로 추가 됩니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 377px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2533CF3954EE775A1D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2533CF3954EE775A1D&quot; width=&quot;377&quot; height=&quot;155&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Effect1.fx&amp;nbsp;는 픽셀 셰이더의 내용을 구현하는 파일이고 Effect1.cs 파일에서&amp;nbsp;사용할 수 있는&amp;nbsp;클래스로 매핑&amp;nbsp;시켜주는 내용을 작성합니다.&lt;/p&gt;&lt;p&gt;EffectLibrary.cs&amp;nbsp;는 헬퍼 메소드를 포함하고 있습니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;실제적으로는 .fx 파일을&amp;nbsp;컴파일한&amp;nbsp;.ps 파일을 사용하게&amp;nbsp;됩니다.&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 445px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21637E3954EE7B1E11&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21637E3954EE7B1E11&quot; width=&quot;445&quot; height=&quot;73&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;그럼으로 .fx 파일은 빌드 속성을 항상 Effect 로 지정해주어야 합니다.&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 355px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/263E043654EE7A4C2A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F263E043654EE7A4C2A&quot; width=&quot;355&quot; height=&quot;186&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;.ps 파일을 생성하는 다른 방법으로는&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;DirectX SDK 를 설치하고 fxc.exe 를 통해서 직접 만들어서 사용할 수도 있습니다.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;fxc /T ps_2_0 /E main /Fo&amp;lt;name or HLSL file&amp;gt;.ps &amp;lt;name of HLSL file&amp;gt;.fx&lt;/p&gt;&lt;p&gt;fxc /T ps_2_0 /E main /Foeffect1.ps Effect1.fx&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;- Sample ( Alpha Channel Video )&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;[&amp;nbsp;ColorKeyAlphaEffect.fx&amp;nbsp;]&lt;/p&gt;&lt;textarea class=&quot;brush:c-sharp;&quot; name=&quot;code&quot;&gt;sampler2D input : register(s0);
float threshold : register(c1);

float4 main(float2 uv : TEXCOORD) : COLOR 
{ 
   float4 color = tex2D( input, uv );
   
   if( color.r + color.g + color.b &amp;lt; threshold ) 
   {
      color.rgba = 0;
   }

  return color; 
}
&lt;/textarea&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;[ ColorKeyAlphaEffect.cs ]&lt;/p&gt;&lt;textarea class=&quot;brush:c-sharp;&quot; name=&quot;code&quot;&gt;public class ColorKeyAlphaEffect : ShaderEffect
    {
        #region Variable

        private static PixelShader _pixelShader = new PixelShader();

        #endregion

        #region Property

        #region Input

        public static readonly DependencyProperty InputProperty =
            ShaderEffect.RegisterPixelShaderSamplerProperty(&quot;Input&quot;, typeof(ColorKeyAlphaEffect), 0);

        public Brush Input
        {
            get { return (Brush)this.GetValue(InputProperty); }
            set { this.SetValue(InputProperty, value); }
        }

        #endregion

        #region Threshold

        public static readonly DependencyProperty ThresholdProperty =
            DependencyProperty.Register(&quot;Threshold&quot;, typeof(double), typeof(ColorKeyAlphaEffect), new UIPropertyMetadata(0.3d, PixelShaderConstantCallback(1)));

        public double Threshold
        {
            get { return (double)this.GetValue(ThresholdProperty); }
            set { this.SetValue(ThresholdProperty, value); }
        }

        #endregion

        #endregion

        #region Constructor

        static ColorKeyAlphaEffect()
        {
            _pixelShader.UriSource = Global.MakePackUri(&quot;Shader/ColorKeyAlphaEffect.ps&quot;);
        }

        public ColorKeyAlphaEffect()
        {
            this.PixelShader = _pixelShader;

            UpdateShaderValue(InputProperty);
            UpdateShaderValue(ThresholdProperty);
        }

        #endregion
    }&lt;/textarea&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 400px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/261E814B54EE83532F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F261E814B54EE83532F&quot; width=&quot;400&quot; height=&quot;300&quot; filename=&quot;bg.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 320px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2718734C54EE833229&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2718734C54EE833229&quot; width=&quot;320&quot; height=&quot;385&quot; filename=&quot;video.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;[ Image ] &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; &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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/strong&gt;&lt;strong&gt;[ Video ]&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/227C1E4F54EE82F923&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F227C1E4F54EE82F923&quot; width=&quot;730&quot; height=&quot;546&quot; filename=&quot;result.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;strong&gt;[ Result ]&lt;/strong&gt;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Reference&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.codeproject.com/Articles/71617/Getting-Started-with-Shader-Effects-in-WPF&quot;&gt;http://www.codeproject.com/Articles/71617/Getting-Started-with-Shader-Effects-in-WPF&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://www.safaribooksonline.com/library/view/hlsl-and-pixel/9781449324995/ch04.html&quot;&gt;https://www.safaribooksonline.com/library/view/hlsl-and-pixel/9781449324995/ch04.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/greg_schechter/archive/2008/05/12/a-series-on-gpu-based-effects-for-wpf.aspx&quot;&gt;http://blogs.msdn.com/b/greg_schechter/archive/2008/05/12/a-series-on-gpu-based-effects-for-wpf.aspx&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blogs.msdn.com/b/jaimer/archive/2008/10/03/announcement-wpf-shader-effects-library-on-codeplex.aspx&quot;&gt;http://blogs.msdn.com/b/jaimer/archive/2008/10/03/announcement-wpf-shader-effects-library-on-codeplex.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://onedrive.live.com/view.aspx?cid=123EC1ED6C72A14A&amp;amp;resid=123ec1ed6c72a14a%21171&amp;amp;app=Word&quot;&gt;https://onedrive.live.com/view.aspx?cid=123EC1ED6C72A14A&amp;amp;resid=123ec1ed6c72a14a%21171&amp;amp;app=Word&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/255D904754EE91A110&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;TransparencyEffect.zip&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Window/WPF</category>
      <category>wpf alpha effect</category>
      <category>wpf alpha effect video</category>
      <category>wpf effect</category>
      <category>wpf pixel shader</category>
      <category>wpf shader effect</category>
      <category>wpf transparency effect</category>
      <category>wpf transparency video</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/130</guid>
      <comments>https://shine10e.tistory.com/130#entry130comment</comments>
      <pubDate>Thu, 26 Feb 2015 12:26:33 +0900</pubDate>
    </item>
    <item>
      <title>놀고 먹고 즐기자! 2014 바이널아이 비닐하우스데이 :)</title>
      <link>https://shine10e.tistory.com/129</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://blog.naver.com/vinyl_i/220172842571&quot; target=&quot;_top&quot; class=&quot;tx-link&quot; style=&quot;text-decoration: underline; color: rgb(66, 106, 223); line-height: normal;&quot;&gt;http://blog.naver.com/vinyl_i/220172842571&lt;/a&gt;&lt;/p&gt;</description>
      <category>VINYL I</category>
      <category>Vinyl</category>
      <category>vinyl i</category>
      <category>바이널아이</category>
      <category>바이널아이비닐하우스</category>
      <category>비닐하우스</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/129</guid>
      <comments>https://shine10e.tistory.com/129#entry129comment</comments>
      <pubDate>Sat, 27 Dec 2014 14:34:11 +0900</pubDate>
    </item>
    <item>
      <title>[ WPF ] Word Cloud</title>
      <link>https://shine10e.tistory.com/128</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;Word Cloud 는&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;어떤 데이터에 포함된 단어들의 빈도수를 시각적으로 표현해 주는 것을 말합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;data visualization ( 데이터 시각화 )&amp;nbsp;의 한 방법으로&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;보통&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;키워드 ( 단어/텍스트 ) 들을 어떠한 공간이나&amp;nbsp;형태에 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;랜덤하게 배치해 줌으로써 시각화 되어집니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;이런 Word Cloud 처럼&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;텍스트들을 어떠한 형태로&amp;nbsp;배치해야 하는&amp;nbsp;일이 있어,&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;테스트 해보기 위해 프로토 타입으로 작성했던 프로그램과&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;나름 여러가지 테스트와 고민을 통해 얻게 된 내용에 대해 포스팅합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;프로그램은 다음과 같은 작업을 합니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;반복횟수, 최대 폰트 사이즈, 최소 폰트 사이즈, 회전, 폰트 효과, 폰트를 설정할 수 있고,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;이미지를 불러들여 입력된 텍스트들을&amp;nbsp;그 형태에 맞게&amp;nbsp;그립니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2630C14F5315781E23&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2630C14F5315781E23&quot; width=&quot;730&quot; height=&quot;280&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;다음과 같은 결과물을 얻을 수 있습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/231BF4485315782D10&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F231BF4485315782D10&quot; width=&quot;730&quot; height=&quot;204&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27250F4B5315783F26&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27250F4B5315783F26&quot; width=&quot;730&quot; height=&quot;446&quot; filename=&quot;3.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/231D62505315784E16&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F231D62505315784E16&quot; width=&quot;730&quot; height=&quot;331&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: verdana&quot;&gt;초기에 다음과 같은 알고리즘으로 시작하였습니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;1. 영역을 나눈다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;3. 영역마다 다음을 수행한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;2. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;영역 범위안의 랜덤한 위치에 최소, 최대 폰트 사이즈 사이의 텍스트를 생성한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;4. 다른 텍스트와 겹치지 않는지 확인한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;5. 겹치는 횟수가 정해진 카운트 값을 초과하지 않을 때까지 반복한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 650px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/220ECB47531578610A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F220ECB47531578610A&quot; width=&quot;650&quot; height=&quot;341&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;하지만 다음과 같은 단점들이 있었습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;1. 영역을 나누기 위해서는 이진화 이미지가 필요하다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;2. 영역을 나누기가 쉽지 않다. ( 영상처리가 필요하다. )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;3. 정밀성을 높이기 위해서는 카운트 횟수가 많아야 한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;4. 카운트 횟수가 높을 수록 소요시간이 너무 길어진다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;5. 폰트 사이즈가 크면 이질감 있게 보인다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;이런 단점들을 보완하기 위해 여러 테스트와 리서치를 진행했고,&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;processing 으로 작성되어 있는 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A class=con_link href=&quot;http://www.openprocessing.org/sketch/1811&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;Scattered Letters&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt; 를 통해 방향을 잡게 되었습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;폰트 사이즈를 랜덤하게 생성하는 것이 아닌 최대 폰트 사이즈에서 최소 폰트 사이즈까지&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;점차 줄여가야 함을 알게 되었습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: verdana&quot;&gt;현재는 다음과 같은 알고리즘을 사용하고 있습니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;1. 텍스트가 그려질 영역 정보를 설정한다. ( &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;default : 현재 이미지&amp;nbsp;영역&amp;nbsp;&amp;nbsp;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;2. 원본 이미지와 동일한 사이즈의&amp;nbsp;빈 이미지를 2개&amp;nbsp;생성한다. (&amp;nbsp;result, temp )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;3. 영역 마다 다음을 수행한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;4. 현재 폰트 사이즈를 현재 영역의 최대 폰트 사이즈로 설정한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;5. 현재 폰트 사이즈가 영역의 최소 폰트 사이즈 보다 클 동안 다음을 반복한다. ( 현재 폰트 사이즈를 줄여간다. )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;6. 현재 폰트 사이즈의 텍스트를 생성한다. ( rotation 옵션 )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;7. 성공할 때까지 정해진 반복횟수만큼 다음을 시도한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;8. 현재 영역안에서 텍스트가 그려질 위치를 설정한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;9.&amp;nbsp;텍스트가&amp;nbsp;그려질 영역에 해당하는 원본 이미지 픽셀에서 다음을 확인한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;10. 흰색인지 확인한다. ( 흰색이면 fail )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;11. 텍스트가 그려질 영역의 중심점 픽셀과&amp;nbsp;픽셀들을 비교한다. ( 차이가 10보다 크면 fail, 영역이 다른 것으로 간주 )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;12. 9, 10 번이 성공하면 텍스트를 이미지화 시켜 픽셀 데이터를 생성한다. ( png )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;13. &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;텍스트가&amp;nbsp;그려질 영역에 해당하는&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;temp 이미지 픽셀에서 텍스트 픽셀이 겹치지 않는지 확인한다. ( 겹치면 fail )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;14. 겹치지 않으면&amp;nbsp;텍스트에 설정된 효과 ( Blur, Boundary, Stroke, None ) 를 적용하여 새로운 픽셀 데이터를 생성한다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;15.&amp;nbsp;새로운&amp;nbsp;픽셀 데이터는 temp 이미지에,&amp;nbsp;기존 텍스트 픽셀은 result 이미지에 그린다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;말이 길지만 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;간단하게 요약하자면,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;텍스트가 그려질 영역 정보를 설정하는 건&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;좀 더 디테일 하게 그려져야 할 부분을 설정하기 위함입니다. ( 자동으로&amp;nbsp;찾으면 좋겠지만.. )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;영역마다 설정된 최대 폰트&amp;nbsp;사이즈부터 폰트 최소 사이즈까지 줄여가며 텍스트를 채워갑니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;픽셀 값의 경계를&amp;nbsp;구분하기 위해&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;텍스트가 그려질 위치의 중간 픽셀 과의 차이값을 이용했습니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;차이가 10정도 나면 다른 영역이라고 판단합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;텍스트의 여백을 설정하기 위해 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;Blur, Boundary, Stroke, None&amp;nbsp;이라는 타입을 설정했습니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;Blur 는 텍스트에 Blur 효과를 적용합니다.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;&amp;nbsp; 
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 372px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/210BF94F5315787433&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F210BF94F5315787433&quot; width=&quot;372&quot; height=&quot;105&quot; filename=&quot;6.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;Stroke 는 텍스트에 Stroke를 설정합니다.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;&amp;nbsp; 
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 383px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2130C14F5315787F25&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2130C14F5315787F25&quot; width=&quot;383&quot; height=&quot;116&quot; filename=&quot;7.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;Boundary 는 텍스트의 영역을 사용합니다.&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;&amp;nbsp; 
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 356px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/221BC3505315789118&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F221BC3505315789118&quot; width=&quot;356&quot; height=&quot;102&quot; filename=&quot;8.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;None 은 아무 효과도 사용하지 않습니다.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 376px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2544C347531578A02F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2544C347531578A02F&quot; width=&quot;376&quot; height=&quot;71&quot; filename=&quot;9.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;Blur 와 Stroke 는 텍스트 형태에 맞게 어느 정도 여백을 가집니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;Boundary 는 텍스트의 외곽&amp;nbsp;안쪽 영역의 여백을 가집니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;None 은 텍스트에 여백없이 빽빽하게 채워집니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;각 결과물은 다음과 같습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;[ Blur&amp;nbsp;]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2313774C531578B518&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2313774C531578B518&quot; width=&quot;730&quot; height=&quot;395&quot; filename=&quot;10.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;[ Stroke ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2504A34C531578C11E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2504A34C531578C11E&quot; width=&quot;730&quot; height=&quot;395&quot; filename=&quot;11.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV align=left&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;[&amp;nbsp;Boundary&amp;nbsp;]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR style=&quot;CLEAR: both&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: center; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/266EFA4C531578CB24&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F266EFA4C531578CB24&quot; width=&quot;730&quot; height=&quot;394&quot; filename=&quot;12.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV align=left&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;[ None&amp;nbsp;]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;BR style=&quot;CLEAR: both&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2748E148531578D902&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2748E148531578D902&quot; width=&quot;730&quot; height=&quot;394&quot; filename=&quot;13.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;[ Rotation ] &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/262A524D531578EB26&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F262A524D531578EB26&quot; width=&quot;730&quot; height=&quot;396&quot; filename=&quot;14.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;[ 한글 ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV align=left&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 730px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21107250531578FB1F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21107250531578FB1F&quot; width=&quot;730&quot; height=&quot;395&quot; filename=&quot;15.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/241D9E385309DC552F&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;WordCloud.zip&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/257D5C3B544DDD9510&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;WordCloud_exe.zip&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Window/WPF</category>
      <category>textvisualization</category>
      <category>wordcloud</category>
      <category>wordcloudc#</category>
      <category>wordcloudwpf</category>
      <category>워드클라우드</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/128</guid>
      <comments>https://shine10e.tistory.com/128#entry128comment</comments>
      <pubDate>Sun, 23 Feb 2014 20:32:40 +0900</pubDate>
    </item>
    <item>
      <title>사진으로 보는 이매진컵 2013 러시아</title>
      <link>https://shine10e.tistory.com/127</link>
      <description>&lt;p&gt;Part 1:&amp;nbsp;&lt;a href=&quot;http://shine10ee.blog.me/10183226194&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://shine10ee.blog.me/10183226194&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Part 2:&amp;nbsp;&lt;a href=&quot;http://shine10ee.blog.me/10183226248&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://shine10ee.blog.me/10183226248&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>History</category>
      <category>ImagineCup</category>
      <category>lumos</category>
      <category>루모스</category>
      <category>이매진컵</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/127</guid>
      <comments>https://shine10e.tistory.com/127#entry127comment</comments>
      <pubDate>Sun, 23 Feb 2014 20:26:27 +0900</pubDate>
    </item>
    <item>
      <title>[R&amp;amp;D] Kinect Extract Matrix(Kinect+Unity3D)</title>
      <link>https://shine10e.tistory.com/126</link>
      <description>&lt;a href=&quot;http://shine10ee.blog.me/10183226044&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://shine10ee.blog.me/10183226044&lt;/a&gt;</description>
      <category>VINYL I</category>
      <category>Kinect</category>
      <category>Unity</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/126</guid>
      <comments>https://shine10e.tistory.com/126#entry126comment</comments>
      <pubDate>Sun, 23 Feb 2014 20:25:35 +0900</pubDate>
    </item>
    <item>
      <title>이매진컵 2013 러시아 - 대한민국 국가대표선발전</title>
      <link>https://shine10e.tistory.com/125</link>
      <description>&lt;a href=&quot;http://shine10ee.blog.me/10183223043&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://shine10ee.blog.me/10183223043&lt;/a&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>History</category>
      <category>lumos</category>
      <category>microsoftimaginecup</category>
      <category>루모스</category>
      <category>이매진컵</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/125</guid>
      <comments>https://shine10e.tistory.com/125#entry125comment</comments>
      <pubDate>Sun, 23 Feb 2014 20:24:14 +0900</pubDate>
    </item>
    <item>
      <title>Windows 8 APP STAR Hackathon KOREA</title>
      <link>https://shine10e.tistory.com/124</link>
      <description>&lt;a href=&quot;http://shine10ee.blog.me/10183222885&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://shine10ee.blog.me/10183222885&lt;/a&gt;</description>
      <category>History</category>
      <category>Windows8AppSTARHackathonKOREA</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/124</guid>
      <comments>https://shine10e.tistory.com/124#entry124comment</comments>
      <pubDate>Sun, 23 Feb 2014 20:22:12 +0900</pubDate>
    </item>
    <item>
      <title>[ C# ] Change Audio Device</title>
      <link>https://shine10e.tistory.com/123</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;몇 년 전 Audio Device 의 변경을 코드로 제어하기 위해&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;다소 엉뚱한 방법으로 접근했던 적이 있었습니다. ㅎㅎ&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class=con_link href=&quot;http://shine10ee.blog.me/10090459561&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;http://shine10ee.blog.me/10090459561&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;오랫만의 여유시간이 생겨&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;좀 더 리서치를 해보니&amp;nbsp;좋은 자료들이 많더군요.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;audioswitch :&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class=con_link href=&quot;https://code.google.com/p/audioswitch/&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;https://code.google.com/p/audioswitch/&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;Vista Core Audio API Master Volume Control :&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class=con_link href=&quot;http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;http://www.codeproject.com/Articles/18520/Vista-Core-Audio-API-Master-Volume-Control&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;AudioEndPointController (c++)&amp;nbsp;:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class=con_link href=&quot;http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;http://www.daveamenta.com/2011-05/programmatically-or-command-line-change-the-default-sound-playback-device-in-windows-7/&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;이 중에서 첫 번째 audioswitch 가 c# 으로 되어 있고&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;Vista Core Audio API Master Volume Control&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt; 에는 없는 IPolicyConfig 인터페이스까지 구현되어 있습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;audioswitch 코드를 인용해서&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;가장 간단하게 연결된&amp;nbsp;Audio Device 의 목록을 리스트 박스에 보여주고&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;선택 시 Default Audio Device 로 설정 되도록 하는 예제를&amp;nbsp;WPF로&amp;nbsp;만들어 봤습니다.&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 298px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/223F044952004C5201&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F223F044952004C5201&quot; width=&quot;298&quot; height=&quot;297&quot; filename=&quot;audio_devices.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/2645D74B52004C5B35&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;Audio.zip&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Languages/C#</category>
      <category>change audio device in code</category>
      <category>changeaudiodevice</category>
      <category>changeaudiodeviceinc#</category>
      <category>changesounddevice</category>
      <category>changesounddeviceinc#</category>
      <category>changesounddeviceincode</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/123</guid>
      <comments>https://shine10e.tistory.com/123#entry123comment</comments>
      <pubDate>Tue, 6 Aug 2013 10:08:25 +0900</pubDate>
    </item>
    <item>
      <title>[ C# ] FTP</title>
      <link>https://shine10e.tistory.com/122</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;프로젝트마다 FTP 관련 기능들을 사용할 때가 있는데요.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;기본 메소드 기능들과 이 기능들을 활용하여 좀 더 다양한 기능들 구현할 때가 많았습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;( 디렉토리 존재여부, 경로대로 디렉토리 생성, 디렉토리 모두 삭제, 디렉토리 다운로드, 여러 파일 업로드&amp;nbsp;등.. )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;그래서 이러한 기능들을 쉽게 사용할 수 있도록 클래스를 만들어 보았습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 331px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2255365053EC0A0E32&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2255365053EC0A0E32&quot; width=&quot;331&quot; height=&quot;434&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;중요 클래스는 Ftp 클래스입니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;그 외에 관련된 필요 클래스들도 위에 보이는 것처럼&amp;nbsp;여러 개가&amp;nbsp;있습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;아래 그림은 Ftp 클래스의 메소드와 프로퍼티 이벤트입니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 508px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/275ABB5053EC0A222E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F275ABB5053EC0A222E&quot; width=&quot;508&quot; height=&quot;746&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;/P&gt;
&lt;P style=&quot;FLOAT: none; TEXT-ALIGN: left; CLEAR: none&quot;&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;메소드는 WebRequestMethods.Ftp 의 기본 메소드들과 이를 응용한 확장 메소드들이 있습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;메소드명을 보시면 어떤 역활을 하는지 알 수 있고,&amp;nbsp;summary 를 달아놔서 사용 시 어렵지는 않으실 겁니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;메소드들 중&amp;nbsp;업로드와 다운로드 메소드명 뒤에 WC 라고 붙는 메소들이 있는데요.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;WebClient 를 이용해서 파일 업로드, 다운로드를 진행하는 메소드이고,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;일반적인 메소드는 FtpWebRequest 를 사용하여 진행합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;프로젝트시 마다 항상 필요성을 느껴서 만들게 된&amp;nbsp;메소드가 두 가지&amp;nbsp;있습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;DownloadDirectoryAsync( WC ) 메소드는 FTP 에 있는 폴더를 통째로 다운로드 받고,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;UploadFileListAsync( WC ) 메소드는 FtpUploadDirectory 리스트를 매개변수로 받아&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;파일들을 모두 업로드 합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;업로드 다운로드시&amp;nbsp;필요 이벤트들을 만들어 놓았습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;DownloadDirectoryChanged 는 다운로드는 되는 파일 변경시 발생하고,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;UploadFileListChanged 는 업로드 되는 파일 변경시 발생합니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;소스를 첨부하니 디버깅에 사용하시고, 출처는 밝혀주시면 감사하겠습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;사용하시면서 발생하는 문제점들에 대해서 의견 주시면 반영하도록 하겠습니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp; &lt;/P&gt;
&lt;DIV class=autosourcing-stub&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/230EED49542A4B8211&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;FTP.zip&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;br /&gt;&lt;/P&gt;</description>
      <category>Languages/C#</category>
      <category>C# FTP</category>
      <category>c# ftp directory exists</category>
      <category>FTP C#</category>
      <category>x# ftp listdirectorydetails</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/122</guid>
      <comments>https://shine10e.tistory.com/122#entry122comment</comments>
      <pubDate>Tue, 26 Feb 2013 18:49:35 +0900</pubDate>
    </item>
    <item>
      <title>[ C# ] Object To Byte, Byte To Byte</title>
      <link>https://shine10e.tistory.com/121</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;object를 byte 로, byte를 struct로 변환하는 코드입니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;
&lt;DIV style=&quot;FONT-SIZE: 10pt; FONT-FAMILY: Consolas; BACKGROUND: white; COLOR: black&quot;&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;static&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;object&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; ByteToObject(&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;byte&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[] buffer)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;try&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;using&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;MemoryStream&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; stream = &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;new&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;MemoryStream&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(buffer))&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;BinaryFormatter&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; binaryFormatter = &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;new&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;BinaryFormatter&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; stream.Position = 0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;return&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; binaryFormatter.Deserialize(stream);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;catch&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;Exception&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; exception)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;Console&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.WriteLine(exception.ToString());&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;return&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;null&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;static&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;byte&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[] ObjectToByte(&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;object&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; obj)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;try&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;using&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;MemoryStream&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; stream = &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;new&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;MemoryStream&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;())&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;BinaryFormatter&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; binaryFormatter = &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;new&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;BinaryFormatter&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; binaryFormatter.Serialize(stream, obj);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;return&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; stream.ToArray();&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;catch&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;Exception&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; exception)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;Console&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.WriteLine(exception.ToString());&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;return&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;null&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;MARGIN: 0px&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;} &lt;/SPAN&gt;
&lt;DIV class=autosourcing-stub&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/SPAN&gt;</description>
      <category>Languages/C#</category>
      <category>byte to object</category>
      <category>c# byte to object</category>
      <category>c# object ti byte</category>
      <category>object to byte</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/121</guid>
      <comments>https://shine10e.tistory.com/121#entry121comment</comments>
      <pubDate>Tue, 26 Feb 2013 18:44:51 +0900</pubDate>
    </item>
    <item>
      <title>[ Surface 2.0 ] SurfaceScrollViewer Transform Behavior</title>
      <link>https://shine10e.tistory.com/120</link>
      <description>&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;Surface 개발 ( 현재는 Pixelsense 로 이름이 변경되었죠. ) 을 하다보면&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;기본적으로 제공되는 SurfaceScrollViewer 에서는 Scroll은 잘 되지만&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;Scale, Rotate, Drag 과 같은 Transform 관련 조작들이 되지 않습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;현재 스마트폰들에서는 당연히 되는 기능이 되지 않아 &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;UX 적인 부분에서 매우 아쉬운 점입니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;하지만 이미 스마트폰에 젖어 있는 사용자들에게 꼭 필요한 기능이기 때문에&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;예전에 하나의 마우스로 멀티터치처럼 Scale, Rotate, Drag 를 할 수 있도록&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;작성해 보았던 소스를 Surface SDK 환경에 맞게 조금 수정하여 Behavior를 만들어 보았습니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;A class=con_link href=&quot;http://shine10ee.blog.me/10079192174&quot; target=_blank&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;U&gt;&lt;FONT color=#0066cc&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;http://shine10ee.blog.me/10079192174&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 395px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1455013C50585A0C30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1455013C50585A0C30&quot; width=&quot;480&quot; height=&quot;395&quot; filename=&quot;0.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 395px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- IsOnlyContentScale&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : SurfaceScorllViewer의 Content 사이즈를 변경 여부 속성,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;false 일 경우 SurfaceScrollViewer의 사이즈가 변경 됩니다. ( default : false )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- CanScale&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : 사이즈 변경 속성, Ture일 경우 SurfaceScrollViewer의 사이즈를 변경합니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- CanRotate&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : 회전 속성, True일 경우 SurfaceScrollViewr를 회전시킵니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IsOnlyContentScale이 True일 경우 적용되지 않습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- CanDrag&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : 드래그 속성, True 일 경우 SurfaceScrollViewer의 위치를 변경합니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- MinScale&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : 최소 사이즈 속성, MaxScale 보다 클 경우 MaxScale 로 설정합니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- MaxScale&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : 최대 사이즈 속성, MinScale 보다 작을 경우 MinScale 로 설정합니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[ &lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;IsOnlyContentScale : True, CanScale : True &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 372px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/175B203450585A2103&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F175B203450585A2103&quot; width=&quot;480&quot; height=&quot;372&quot; filename=&quot;1.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 372px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[ &lt;/SPAN&gt;&lt;FONT face=Verdana&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;IsOnlyContentScale : False, CanScale : True &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 455px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/152B813A50585A3301&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F152B813A50585A3301&quot; width=&quot;480&quot; height=&quot;455&quot; filename=&quot;2.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 455px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[ CanRotate : True ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 370px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1847403450585AAF17&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1847403450585AAF17&quot; width=&quot;480&quot; height=&quot;370&quot; filename=&quot;4.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 370px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[ CanScale : True, CanRotate : True ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 395px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/151CDC3A50585AC413&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F151CDC3A50585AC413&quot; width=&quot;480&quot; height=&quot;395&quot; filename=&quot;5.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 395px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[ CanDrag : True ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 362px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/152D953A50585AD901&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F152D953A50585AD901&quot; width=&quot;480&quot; height=&quot;362&quot; filename=&quot;6.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 362px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[ CanScale : True, CanRotate : True, CanDrag : True ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; FLOAT: none; CLEAR: none&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 377px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1123B03950585AE90A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1123B03950585AE90A&quot; width=&quot;480&quot; height=&quot;377&quot; filename=&quot;7.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 377px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/1254D9365058598501&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;SurfaceScrollViewerBehavior.zip&lt;/a&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Window/Surface</category>
      <category>SurfaceScrollViewer</category>
      <category>SurfaceScrollViewer Rotate</category>
      <category>SurfaceScrollViewer Scale</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/120</guid>
      <comments>https://shine10e.tistory.com/120#entry120comment</comments>
      <pubDate>Tue, 18 Sep 2012 20:29:32 +0900</pubDate>
    </item>
    <item>
      <title>Import C# dll</title>
      <link>https://shine10e.tistory.com/119</link>
      <description>&lt;P&gt;
&lt;P&gt;
&lt;P&gt;&lt;SPAN&gt;
&lt;DIV class=autosourcing-stub&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt;C# 에서 C++로 작성된 dll 을 사용할 경우에는 &lt;SPAN style=&quot;FONT-FAMILY: verdana; COLOR: rgb(43,145,175); FONT-SIZE: 9pt; mso-font-kerning: 0pt&quot; &gt;DllImport &lt;SPAN style=&quot;FONT-FAMILY: verdana; COLOR: rgb(0,0,0); FONT-SIZE: 9pt&quot;&gt;를 사용하여&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt; 손쉽게 사용할 수 있지만&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt;C++ 에서 C#으로 작성된 dll 을 사용할 경우에는 COM으로 등록하는 작업이 추가적으로 필요합니다.&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN&gt;사용법에 대해서 하나씩 살펴보겠습니다.&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;[ C# dll&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt; ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;1. C++에서 사용가능한 메소드를 노출시키기 위한 인터페이스를 선언합니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(255,108,0)&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(255,108,0)&quot;&gt;Tip&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(255,108,0)&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(0,0,0)&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;SPAN style=&quot;COLOR: rgb(255,108,0)&quot;&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(0,0,0)&quot;&gt;-&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;Guid &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;는 Visual Studio의 [ Tools ] - [ Create GUID ] 메뉴를 통해 쉽게 만들 수 있습니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;- &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: rgb(43,145,175)&quot;&gt;ComVisible&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;true&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;)] 대신 다음과 같이 Make assembly COM-Visible을 체크할 수 있습니다.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 480px; WIDTH: 480px; HEIGHT: 437px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/17361B4B502DFBC714&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F17361B4B502DFBC714&quot; width=&quot;480&quot; height=&quot;437&quot; filename=&quot;capture1.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 480px; HEIGHT: 437px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;ComVisible&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;true&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;)]&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;Guid&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #a31515&quot;&gt;&quot;61EA822A-82BC-4CCE-A0BF-5A24855FF613&quot;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;)]&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;interface&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;ICShapSample&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;void&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; ShowMessage();&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT face=돋움&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT face=돋움&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;2. 인터페이스를 상속받아 클래스를 구현합니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&lt;FONT size=3 face=굴림&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT size=3 face=굴림&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;ComVisible&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;true&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;)]&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;ClassInterface&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;ClassInterfaceType&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.None)]&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;[&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;Guid&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #a31515&quot;&gt;&quot;36EA856C-99E3-4365-B157-6C0D75173F48&quot;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;)]&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;class&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;CShapSample&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; : &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;COLOR: #2b91af&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;ICShapSample&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;public&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;void&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; ShowMessage()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;MessageBox&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.Show(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #a31515&quot;&gt;&quot;Hello World!!&quot;&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT size=3 face=굴림&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&lt;FONT size=3 face=굴림&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;3. dll 을 COM으로 등록합니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&lt;FONT size=3 face=굴림&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt;두 가지 방법이 있습니다.&lt;/SPAN&gt;&lt;/FONT&gt; &lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&lt;FONT size=3 face=굴림&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 9pt&quot;&gt;1 ) Visual Studio를 &lt;STRONG&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/FONT&gt;관리자 권한으로 실행 시킨 후 다음과 같이 Register for COM interop을 선택한 후 빌드합니다.&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; WIDTH: 500px; HEIGHT: 455px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1627D54B502DFD9931&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1627D54B502DFD9931&quot; width=&quot;500&quot; height=&quot;455&quot; filename=&quot;capture2.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 500px; HEIGHT: 455px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN-TOP: 0cm; MARGIN-BOTTOM: 0pt; WORD-BREAK: keep-all; MARGIN-RIGHT: 0cm; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;2 ) 커맨드 창을 관리 권한으로 실행시 킨 후 regasm 을 이용해 등록합니다.&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;FONT size=3 face=굴림&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;- &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;환경변수가 설정이 되어 있지 않으면&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp; C:\Windows\Microsoft.NET\Framework\v4.0.30319 ( 설치 버전에 따라 다름 )&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp; 경로에 있는 RegAsm 과 regasm 파일을 dll 폴더에 복사합니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;FONT size=3 face=굴림&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp; 커맨드 창에서 dll 폴더로 이동한 후,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana&quot;&gt;&amp;nbsp; regasm ClassLibrary.dll /tlb 를 입력 후 실행합니다.&lt;/SPAN&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 600px; WIDTH: 600px; HEIGHT: 277px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/166A8247502DFC7413&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F166A8247502DFC7413&quot; width=&quot;600&quot; height=&quot;277&quot; filename=&quot;capture3.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 600px; HEIGHT: 277px&quot;/&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;STRONG&gt;[ 등록이 완료되면 tlb 파일이 생성됩니다. ]&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;/P&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;[ C++&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt; ]&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: 1.2; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;FONT size=3 face=굴림&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;tlb 파일을 import 하여 사용합니다.&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=3 face=굴림&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; FONT-SIZE: 10pt&quot;&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;#include&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #a31515&quot;&gt;&amp;lt;Windows.h&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;#import&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #a31515&quot;&gt;&quot;..\ClassLibrary\bin\Debug\ClassLibrary.tlb&quot;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;using&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;namespace&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; ClassLibrary;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;void&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; main()&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-tab-count: 1&quot;&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;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;CoInitialize(NULL);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-tab-count: 1&quot;&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;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;ICShapSamplePtr ptr(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;__uuidof&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(CShapSample));&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-tab-count: 1&quot;&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;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;ptr-&amp;gt;ShowMessage();&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-tab-count: 1&quot;&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;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;ptr-&amp;gt;Release();&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-tab-count: 1&quot;&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;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;CoUninitialize();&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;STRONG&gt;&lt;SPAN style=&quot;FONT-FAMILY: verdana; COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt;[ 실행화면&lt;/SPAN&gt;&lt;SPAN style=&quot;COLOR: rgb(0,117,200); FONT-SIZE: 11pt&quot;&gt; ]&lt;/SPAN&gt;&lt;/STRONG&gt; &lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 500px; WIDTH: 500px; HEIGHT: 326px; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/1916164A502DFDAF0A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F1916164A502DFDAF0A&quot; width=&quot;500&quot; height=&quot;326&quot; filename=&quot;capture4.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;WIDTH: 500px; HEIGHT: 326px&quot;/&gt;&lt;/span&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/11451C49502DFCFB11&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/zip.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;CShapDllImport.zip&lt;/a&gt;&lt;/span&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&amp;nbsp;
&lt;DIV class=autosourcing-stub&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;STRONG&gt;&lt;FONT color=#0075c8 face=Verdana&gt;&lt;/FONT&gt;&lt;/STRONG&gt;</description>
      <category>Languages/C, C++</category>
      <category>#import</category>
      <category>import C# dll</category>
      <category>import C# dll in C++</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/119</guid>
      <comments>https://shine10e.tistory.com/119#entry119comment</comments>
      <pubDate>Fri, 17 Aug 2012 17:17:43 +0900</pubDate>
    </item>
    <item>
      <title>[ WPF ] VisualTree FindChild</title>
      <link>https://shine10e.tistory.com/118</link>
      <description>&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #333333; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;VisualTree 를 순회하며 해당 타입과 이름이 일치하는 자식을 찾는 소스 코드입니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #333333; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;Template 에 유용하게 사용할 수 있습니다.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #333333; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;static&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; T FindChild&amp;lt;T&amp;gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;this&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;FrameworkElement&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; obj, &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;string&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; name)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;DependencyObject&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; dObj = obj &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;as&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;DependencyObject&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;T findChild = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;default&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(T);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (dObj != &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;null&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;int&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; childCount = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;VisualTreeHelper&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.GetChildrenCount(dObj);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;for&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;int&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; i = 0; i &amp;lt; childCount; i++)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;DependencyObject&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; childObj = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;VisualTreeHelper&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.GetChild(dObj, i);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;FrameworkElement&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; child = childObj &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;as&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;FrameworkElement&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (child.GetType() == &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;typeof&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(T) &amp;amp;&amp;amp; child.Name == name)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&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; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;findChild = (T)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af&quot;&gt;Convert&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;.ChangeType(child, &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;typeof&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;(T));&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&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; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;break&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;findChild = child.FindChild&amp;lt;T&amp;gt;(name);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; (findChild != &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;null&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;) &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;break&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue&quot;&gt;return&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt; findChild;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot;  align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: 'Verdana','sans-serif'; FONT-SIZE: 9pt; mso-bidi-font-family: Consolas; mso-font-kerning: 0pt&quot; &gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Window/WPF</category>
      <category>Template Child</category>
      <category>VisualTree Child</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/118</guid>
      <comments>https://shine10e.tistory.com/118#entry118comment</comments>
      <pubDate>Fri, 17 Aug 2012 15:07:39 +0900</pubDate>
    </item>
    <item>
      <title>[ C# ] Struct To Byte, Byte To Struct</title>
      <link>https://shine10e.tistory.com/117</link>
      <description>&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 10pt&quot;&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #333333; FONT-SIZE: 9pt&quot;&gt;Struct 를 Byte 로, Byte 를 Struct 로 변환하는 소스 입니다.&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #333333; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class=autosourcing-stub&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 10pt; mso-font-kerning: 0pt&quot;&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-font-kerning: 0pt&quot;&gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;static&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;byte&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;[] StructToByte(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;object&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; obj)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;int&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; size = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.SizeOf(obj);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;byte&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;[] arr = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;new&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;byte&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;[size];&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;IntPtr&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; ptr = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.AllocHGlobal(size);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.StructureToPtr(obj, ptr, &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;true&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.Copy(ptr, arr, 0, size);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.FreeHGlobal(ptr);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;return&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; arr;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt; mso-font-kerning: 0pt&quot;&gt;public&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;static&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; T ByteToStruct&amp;lt;T&amp;gt;(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;byte&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;[] buffer) &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;where&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; T : &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;struct&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;int&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; size = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.SizeOf(&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;typeof&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;(T));&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;if&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; (size &amp;gt; buffer.Length)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;{&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;throw&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;new&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Exception&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;();&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;IntPtr&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; ptr = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.AllocHGlobal(size);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.Copy(buffer, 0, ptr, size);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt; mso-spacerun: yes&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;T obj = (T)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.PtrToStructure(ptr, &lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;typeof&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;(T));&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: #2b91af; FONT-SIZE: 9pt&quot;&gt;Marshal&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;.FreeHGlobal(ptr);&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;SPAN style=&quot;mso-spacerun: yes&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; COLOR: blue; FONT-SIZE: 9pt&quot;&gt;return&lt;/SPAN&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt; obj;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 9pt&quot;&gt;}&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style=&quot;TEXT-ALIGN: left; LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; WORD-BREAK: keep-all; mso-layout-grid-align: none&quot; align=left&gt;&lt;SPAN style=&quot;FONT-FAMILY: Consolas; FONT-SIZE: 11pt; mso-font-kerning: 0pt&quot;&gt;&lt;FONT color=#000000&gt;&lt;SPAN style=&quot;FONT-FAMILY: Verdana; FONT-SIZE: 10pt&quot;&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;</description>
      <category>Languages/C#</category>
      <category>C#ByteToStruct</category>
      <category>C#StructToByte</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/117</guid>
      <comments>https://shine10e.tistory.com/117#entry117comment</comments>
      <pubDate>Fri, 17 Aug 2012 14:27:13 +0900</pubDate>
    </item>
    <item>
      <title>데이터 바인딩 ( Data Binding )</title>
      <link>https://shine10e.tistory.com/116</link>
      <description>&lt;P&gt;데이터 바인딩을 주제로 작성한 스터디 발표 자료입니다.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;IFRAME style=&quot;BORDER-BOTTOM: #ccc 0px solid; BORDER-LEFT: #ccc 1px solid; MARGIN-BOTTOM: 5px; BORDER-TOP: #ccc 1px solid; BORDER-RIGHT: #ccc 1px solid&quot; height=356 marginHeight=0 src=&quot;http://www.slideshare.net/slideshow/embed_code/13734557&quot; frameBorder=0 width=427 marginWidth=0 scrolling=no allowfullscreen&gt; &lt;/IFRAME&gt; 
&lt;DIV style=&quot;MARGIN-BOTTOM: 5px&quot;&gt;&lt;STRONG&gt;&lt;A title=&quot;데이터 바인딩 ( Binding )&quot; href=&quot;http://www.slideshare.net/shine10e/binding&quot; target=_blank&gt;데이터 바인딩 ( Binding )&lt;/A&gt; &lt;/STRONG&gt;from &lt;STRONG&gt;&lt;A href=&quot;http://www.slideshare.net/shine10e&quot; target=_blank&gt;shine10e&lt;/A&gt;&lt;/STRONG&gt; &lt;/DIV&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block;   height: auto; max-width: 100%;&quot;&gt;&lt;a href=&quot;https://t1.daumcdn.net/cfile/tistory/15672D38500E0FA51C&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;https://i1.daumcdn.net/cfs.tistory/v/0/blog/image/extension/pptx.gif&quot; style=&quot;vertical-align: middle;&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;/&gt;데이터 바인딩 ( Binding ).pptx&lt;/a&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <category>Window/WPF</category>
      <category>wpf databinding</category>
      <category>wpf 데이터 바인딩</category>
      <category>데이터 바인딩</category>
      <author>열ㅇl</author>
      <guid isPermaLink="true">https://shine10e.tistory.com/116</guid>
      <comments>https://shine10e.tistory.com/116#entry116comment</comments>
      <pubDate>Tue, 24 Jul 2012 12:00:12 +0900</pubDate>
    </item>
  </channel>
</rss>