본문 바로가기
개발언어/C#.NET

클릭원스 바탕화면 아이콘 변경하기 ClickOnce deskcut icon change

by 엔돌슨 2012. 5. 17.
반응형
클릭원스 바탕화면 아이콘 변경하는 방법 입니다.

아래와 같이 프로그램 적으로 수정할 수도 있습니다.
http://robindotnet.wordpress.com/2009/04/07/creating-a-desktop-shortcut-for-a-click-once-application/





위와 같이 아이콘을 지정하는 것이 제일 보편적입니다. 그리고 게시할때 옵션에서 "바탕화면에 아이콘 만들기"을 체크해주면 생성이 됩니다.

게시할때 체크하는 건 알지만 아이콘 모양 바꾸려니 어디에 있는 지 자주 헷갈리네요 ㅎㅎ


좋은 방법은 아니지만 바탕화면에 아이콘을 복사하는 방법도 있습니다.
private static void CheckForShortcut()
        {
            ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

            if (ad.IsFirstRun)
            {
                Assembly code = Assembly.GetExecutingAssembly();

                string company = string.Empty;
                string description = string.Empty;

                if (Attribute.IsDefined(code, typeof(AssemblyCompanyAttribute)))
                {
                    AssemblyCompanyAttribute ascompany = (AssemblyCompanyAttribute)Attribute.GetCustomAttribute(code,
                        typeof(AssemblyCompanyAttribute));
                    company = ascompany.Company;
                }

                if (Attribute.IsDefined(code, typeof(AssemblyDescriptionAttribute)))
                {
                    AssemblyDescriptionAttribute asdescription = (AssemblyDescriptionAttribute)Attribute.GetCustomAttribute(code,
                        typeof(AssemblyDescriptionAttribute));
                    description = asdescription.Description;
                }

                if (company != string.Empty && description != string.Empty)
                {
                    string desktopPath = string.Empty;
                    desktopPath = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),
                        "\\", description, ".appref-ms");

                    string shortcutName = string.Empty;
                    shortcutName = string.Concat(Environment.GetFolderPath(Environment.SpecialFolder.Programs),
                        "\\", company, "\\", description, ".appref-ms");

                    System.IO.File.Copy(shortcutName, desktopPath, true);
                }

            }
        }