{"id":10420,"date":"2025-06-16T16:37:30","date_gmt":"2025-06-16T07:37:30","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10420"},"modified":"2025-12-30T16:07:23","modified_gmt":"2025-12-30T07:07:23","slug":"%ec%bb%a4%ec%8a%a4%ed%85%80-%ec%95%a1%ec%85%98","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10420","title":{"rendered":"\ube44\uc8fc\uc5bc \uc2a4\ud29c\ub514\uc624 \uc778\uc2a4\ud1a8\ub7ec \ud504\ub85c\uc81d\ud2b8 : \ucee4\uc2a4\ud140 \uc561\uc158"},"content":{"rendered":"<h1>\ube44\uc8fc\uc5bc \uc2a4\ud29c\ub514\uc624 \uc778\uc2a4\ud1a8\ub7ec \ud504\ub85c\uc81d\ud2b8 : \ucee4\uc2a4\ud140 \uc561\uc158<\/h1>\n<p>\uae30\ubcf8\uc801\uc778 \ud30c\uc77c \ubcf5\uc0ac\ub294 Microsoft Visual Studio Installer Projects \ub97c \uc774\uc6a9\ud558\ub294 \uac83\uc73c\ub85c \ub05d\uc774 \ub0a9\ub2c8\ub2e4.<\/p>\n<p>\ud558\uc9c0\ub9cc \uc138\uc138\ud55c \ucd94\uac00\uc791\uc5c5\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 CustomAction \uc774\ub780 \uac83\uc744 \ucd94\uac00\ud574 \uc8fc\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h2>\ud504\ub85c\uc81d\ud2b8 \ucd94\uac00<\/h2>\n<p>\uc194\ub8e8\uc158 \ud0d0\uc0c9\uae30 -&gt; \uc194\ub8e8\uc158 \uc624\ub978\ucabd \ud074\ub9ad -&gt; Add -&gt; New Project<\/p>\n<p><code>\ud074\ub798\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac<\/code> \ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc5ec\ub7ec\uac00\uc9c0\uc758 \ud074\ub798\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uac80\uc0c9\ub418\ub294\ub370 <code>C#<\/code> \uc774\uace0 <code>.dll<\/code> \uc774\ub780 \uae00\uc790\uac00 \ub4e4\uc5b4\uac04 \uac83\uc744 \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n<p>.NET Framework 4.7.2 \ub97c \uc120\ud0dd\ud574 \uc90d\ub2c8\ub2e4.<br \/>\n(\uc708\ub3c4\uc6b0\uc5d0 \uae30\ubcf8\uc73c\ub85c \uc124\uce58\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.)<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-01.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-01.png\" alt=\"\" \/><\/a><\/p>\n<h2>\uc124\uce58 \uad00\ub9ac\uc790 \ud074\ub798\uc2a4 \ucd94\uac00<\/h2>\n<p>CustomAction \uc624\ub978\ucabd \ud074\ub9ad -&gt; Add -&gt; \ud074\ub798\uc2a4 -&gt; \uc124\uce58 \uad00\ub9ac\uc790 \ud074\ub798\uc2a4 \ub97c \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub984\uc740 CustomInstaller.cs \ub85c \ud574\uc90d\ub2c8\ub2e4.<\/p>\n<p>Class1.cs \ub294 \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/p>\n<p>CustomInstaller.cs \ub97c \uc544\ub798\ucc98\ub7fc \ucf54\ub4dc\ub97c \uc791\uc131\ud574\uc90d\ub2c8\ub2e4.<\/p>\n<p><code>do something<\/code> \ubd80\ubd84\uc5d0 \uc791\uc5c5\uc774 \ud544\uc694\ud55c \ucf54\ub4dc\ub97c \ucd94\uac00\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<p>\ube4c\ub4dc\ub97c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-csharp\">namespace CustomAction\n{\n    [RunInstaller(true)]\n    public partial class CustomInstaller : System.Configuration.Install.Installer\n    {\n        public CustomInstaller()\n        {\n            InitializeComponent();\n        }\n\n        private string programFilesPath = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);\n\n        public override void Install(IDictionary stateSaver)\n        {\n            base.Install(stateSaver);\n            \/\/ CustomActionData\n            stateSaver.Add(&quot;TARGETDIR&quot;, Context.Parameters[&quot;TARGETDIR&quot;].ToString());\n        }\n\n        public override void Commit(IDictionary savedState)\n        {\n            base.Commit(savedState);\n\n            \/\/ do something\n        }\n    }\n}<\/code><\/pre>\n<h2>\uc124\uce58 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uae30\ubcf8 \ucd9c\ub825 \ucd94\uac00<\/h2>\n<p>\uc124\uce58 \ud504\ub85c\uc81d\ud2b8 \uc624\ub978\ucabd \ud074\ub9ad -&gt; View \u2192 \ud30c\uc77c \uc2dc\uc2a4\ud15c<\/p>\n<p>Application Folder \uc5d0 CustomAction \uc758 \uae30\ubcf8 \ucd9c\ub825\uc744 \ucd94\uac00\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-02.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-02.png\" alt=\"\" \/><\/a><\/p>\n<h2>\uc124\uce58 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc791\uc5c5 \ucd94\uac00<\/h2>\n<p>\uc124\uce58 \ud504\ub85c\uc81d\ud2b8 \uc624\ub978\ucabd \ud074\ub9ad -&gt; View \u2192 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc791\uc5c5<\/p>\n<p>Install\/Commit \uc744 \ucd94\uac00\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<p>\uc704 \uc18c\uc2a4\ucf54\ub4dc\ub97c \ud655\uc778\ud574 \ubcf4\uc2dc\uba74 Install\/Commit \uc5d0 \ub300\ud574\uc11c\ub9cc \ucf54\ub529\uc774 \ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc124\uce58 \ud504\ub85c\uadf8\ub7a8 \uc5c5\uadf8\ub798\uc774\ub4dc<\/h2>\n<p><b><font size=8 color=red>dll \ubc84\uc804 \uc5c5\uadf8\ub798\uc774\ub4dc \ud544\uc218<\/font><\/b><br \/>\n<b><font size=8 color=red>dll \ubc84\uc804 \uc5c5\uadf8\ub798\uc774\ub4dc \ud544\uc218<\/font><\/b><br \/>\n<b><font size=8 color=red>dll \ubc84\uc804 \uc5c5\uadf8\ub798\uc774\ub4dc \ud544\uc218<\/font><\/b><\/p>\n<p>\uae30\uc874 \uc124\uce58 \ud504\ub85c\uadf8\ub7a8\uc73c\ub85c \uc124\uce58 \ud6c4 \ub2e4\uc2dc \uc5c5\uadf8\ub798\uc774\ub4dc \ubc84\uc804\uc744 \uc124\uce58\ud558\ub824\uba74 <a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10370\">https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10370<\/a> \ub97c \ucc38\uc870\ud574\uc11c dll \ubc84\uc804\uc744 \uc62c\ub824\uc8fc\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 \uc2e0\uaddc dll \uc774 \uc124\uce58\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ub370\uc774\ud0c0 \uc804\ub2ec<\/h2>\n<p>CustomActionData \uc744 \uc774\uc6a9\ud574 \uac12\uc744 \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-04.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-04.png\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-05.png\"><img decoding=\"async\" src=\"https:\/\/www.skyer9.pe.kr\/wordpress\/wp-content\/uploads\/2025\/06\/2025-06-17-05.png\" alt=\"\" \/><\/a><\/p>\n<p>\/name=&quot;value&quot; \ud615\uc2dd\uc774 \uae30\ubcf8\uc774\uace0, \uc5ec\ub7ec\uac1c\ub97c \uc804\ub2ec\ud558\ub824\uba74<br \/>\n\/name1=&quot;value1&quot; \/name2=&quot;value2&quot; \ub85c \ud569\ub2c8\ub2e4.<\/p>\n<p><del><font color=red><b>\/TARGETDIR=\u201d[TARGETDIR]\\\u201d \uc640 \uac19\uc774 \uac12\uc774 \ub514\ub809\ud1a0\ub9ac\uc778 \uacbd\uc6b0 \ub2eb\ub294 \ub530\uc634\ud45c \uc55e\uc5d0 (\uc5ed\uc2ac\ub7ec\uc26c)\ub97c \ucd94\uac00\ud574\uc57c\ud55c\ub2e4.<\/b><\/font><\/del><\/p>\n<p>\/TARGETDIR=[TARGETDIR] \uc640 \uac19\uc774 \ub530\uc6c0\ud45c\ub97c \ub123\uc9c0 \uc54a\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n<h2>Install<\/h2>\n<p><font color=red><b>Install \uc740 \uc124\uce58\ud30c\uc77c\uc744 \uc124\uce58\ud558\uae30 \uc774\uc804\uc5d0 \uc2e4\ud589\ub41c\ub2e4.<\/b><\/font><\/p>\n<p>\uc989, \uae30\uc874\uc5d0 \ucee4\uc2a4\ud140\uc561\uc158\uc774 \uc5c6\ub2e4\uac00 \ucd94\uac00\ub41c \uacbd\uc6b0, Install \ubd80\ubd84\uc740 \uc2e4\ud589\ub418\uc9c0 \uc54a\ub294\ub2e4.<br \/>\n\ub610\ub294 \uae30\uc874\uc5d0 \uc788\ub354\ub77c\ub3c4 \uae30\ub2a5\uc774 \ubcc0\uacbd\ub41c \uacbd\uc6b0, \ud604\uc7ac \ubc84\uc804\uc774 \uc544\ub2cc \uc774\uc804 \ubc84\uc804\uc758 \ucee4\uc2a4\ud140 \uc561\uc158\uc774 \uc2e4\ud589\ub41c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ube44\uc8fc\uc5bc \uc2a4\ud29c\ub514\uc624 \uc778\uc2a4\ud1a8\ub7ec \ud504\ub85c\uc81d\ud2b8 : \ucee4\uc2a4\ud140 \uc561\uc158 \uae30\ubcf8\uc801\uc778 \ud30c\uc77c \ubcf5\uc0ac\ub294 Microsoft Visual Studio Installer Projects \ub97c \uc774\uc6a9\ud558\ub294 \uac83\uc73c\ub85c \ub05d\uc774 \ub0a9\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc138\uc138\ud55c \ucd94\uac00\uc791\uc5c5\uc774 \ud544\uc694\ud55c \uacbd\uc6b0 CustomAction \uc774\ub780 \uac83\uc744 \ucd94\uac00\ud574 \uc8fc\uc5b4\uc57c \ud569\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8 \ucd94\uac00 \uc194\ub8e8\uc158 \ud0d0\uc0c9\uae30 -&gt; \uc194\ub8e8\uc158 \uc624\ub978\ucabd \ud074\ub9ad -&gt; Add -&gt; New Project \ud074\ub798\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub97c \uac80\uc0c9\ud569\ub2c8\ub2e4. \uc5ec\ub7ec\uac00\uc9c0\uc758 \ud074\ub798\uc2a4 \ub77c\uc774\ube0c\ub7ec\ub9ac\uac00 \uac80\uc0c9\ub418\ub294\ub370 C# \uc774\uace0 .dll\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=10420\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-10420","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10420"}],"version-history":[{"count":9,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10420\/revisions"}],"predecessor-version":[{"id":11245,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/10420\/revisions\/11245"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}