안녕하세요. 쥔장입니다.
오랜만에 자료를... ㅡㅡ;;
.Net 으로 프로그래밍을 해서 ClickOnce 로 배포를 하게 되면 바탕화면에 아이콘이 안생기는 아주 사소한 문제(?)가 있습니다.
이걸 해결할 수 있는 방법이죠.
아래 부분을 게시할 EXE 파일에 같이 넣어서 배포를 하세요.
'선언부
Imports System
Imports System.IO
Imports System.Collections.Generic
Imports System.Text
Imports System.Deployment.Application
'클래스 안쪽에 프로시저
Public Sub CheckForShortCut()
Dim ad As ApplicationDeployment
Dim companyName As String = ""
Dim productName As String = ""
Dim deskDir As String = ""
Dim startDirH As String = ""
Dim startDirE As String = ""
'사전 준비사항
'프로젝트 속성 창의 응용프로그램 탭에서 어셈블리 정보에서
'회사는 System.Windows.Forms.Application.CompanyName이며,
'제품이 System.Windows.Forms.Application.ProductName이다.
'회사명과 제품명은 인스톨될 때 게시탭의 게시옵션의 게시자 이름(회사), 제품 이름(제품)으로 지정되지만
'프로그램이 로딩되면 System.Windows.Forms.Application에서 불러오므로
'게시탭의 게시옵션과 응용프로그램 탭의 어셈블리 정보의 회사와 제품은 항상 같아야 한다.
'그리고 시작메뉴 하위에 있는 프로그램 폴더의 이름은 한글로 '프로그램'일 수도 있고
'영어로 'Programs'일 수도 있다.
Try
ad = ApplicationDeployment.CurrentDeployment
If ad.IsFirstRun Then
companyName = System.Windows.Forms.Application.CompanyName
productName = System.Windows.Forms.Application.ProductName
deskDir = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) _
+ "\" + productName + ".appref-ms"
startDirH = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) _
+ "\프로그램\" + companyName + "\" + productName + ".appref-ms"
startDirE = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) _
+ "\Programs\" + companyName + "\" + productName + ".appref-ms"
If (File.Exists(startDirE)) Then
File.Copy(startDirE, deskDir, True)
Else
File.Copy(startDirH, deskDir, True)
End If
End If
Call SaveSetting(My.Application.Info.Title, "Option", "ShortCut", "Yes")
Catch ex As Exception
End Try
End Sub
위와 같이 두개를 넣고 폼 Load 부분에
If Not GetSetting(My.Application.Info.Title, "Option", "ShortCut", "") = "Yes" Then
'바탕화면 아이콘 생성
Call CheckForShortCut()
End If
이렇게 해주시면
처음 실행시부터 바탕화면에 아이콘이 한번 놓여질때까지 시도를 한후
그후부터는 놓지 않습니다.
물론 레지스트리가 삭제되면 또 놓겠지만요.
방법은 보시면 알겠지만 시작메뉴의 프로그램폴더에 있는 아이콘을 바탕화면에 복사하는 방식이구요.
레지스트리를 통해 설치한적이 있는지를 기억해서 짜증나게 계속 설치 안되게 하는겁니다.
설치프로그램이(설치시) 바탕화면에 아이콘을 놓는게 아니고 설치후 프로그램이
처음 실행되면서 바탕화면에 놓는 방식이죠.
EXE 프로젝트의 속성에서
게시탭의 게시옵션과 응용프로그램탭의 회사이름과 응용프로그램이름을 꼭 맞춰줘야지
아이콘을 복사해 옵니다.
도움이 되셨길...