네트워크 경로에 있는 프로젝트 열기

.Net 2012.03.30 14:53

난 그냥 안되는줄 알았네...

http://msdn.microsoft.com/en-us/library/bs2bkwxc(v=vs.80).aspx

설정

트랙백

댓글

ClickOnce 주요 API

.Net/배포 2012.03.30 14:31

참조 dll : System.Deployment.dll

네임스페이스 : System.Deployment.Application

클래스 : ApplicationDeployment

-----------------------------------------------------

IsNetworkDeployed : ClickOnce 배포를 통하여 실행되었는가?

                              ClickOnce API를 이용하기 전 항상 체크 해야 함.

IsFirstRun : 현재 버전이 처음 실행 되었는가?

Update(). UpdateAsync(), CheckForUpdate(), CheckForUpdateAsync() : 업데이트 관련

IsFileGroupDownloaded(), DownloadFileGroup(). DownloadFileGroupAsync() : 추가 파일 그룹별 다운로드 관련

 

설정

트랙백

댓글

프로그램 경로

.Net/C# 2012.03.30 14:17

난 시작 경로를 가져오고 싶은 경우, 그러니까, *.exe 파일이 있는 경로를 가져오고 싶은 경우

Enviroment.CurrentDirectory를 썼었다.

뭐.. 콘솔응용프로그램에서는 문제가 없었다.

하지만 Winform 이나 WPF 의 경우.. OpenFileDialog 등과 같이 경로 변경이 일어날 경우

Enviroment.CurrentDirectory 이놈은 같이 변한다.

 

그래서 수정했던게 System.Windows.Forms.Application.StartupPath 이 놈.

잘가져왔다.

하지만 ClickOnce 배포후 실행되는 경우는 난감하다. 닷넷 프레임워크 기본경로를 통해서 실행되기 때문이다.

그래서 어디서나 제대로 된 프로그램의 시작 경로를 가져 오고 싶을 때는

System.AppDomain.CurrentDomain.BaseDirectory 이 곳을 참조하자.

설정

트랙백

댓글

부트스트래퍼(BootStrapper)

.Net/배포 2012.03.30 14:01

비주얼 스튜디오 시작시 부트스트래퍼 경로에 있는 부트스트랩을 읽어 온다.

부트스트래퍼 경로 : \Program Files\Microsoft Visual Studio\SDK\v2.0\BootStrapper\Packages

단순히 파일만 있어서 되는게 아니라 XML스키마를 따르는 XML파일, 설치프로그램을 설명하는 매니페스트 파일이 필요하다.

생성시 아래 툴을 이용하라.

Bootstrapper Manifest Generator Tool (http://archive.msdn.microsoft.com/bmg)

생성 - Project Code: "게시자.제품명.버전"

          Display Name: 필수항목에 노출될 이름

          System Checks : 필요한 항목 설정(파일, GAC, 레지스트리)

          Install Conditions

          Exit Code: Success, Fail 등..

          빌드

 

----

첨부 : wic_bootstrapper_patch.exe

        Windows 2003, Windows XP sp2 이하 버전에서 .net framework 설치시 반드시 포함되어야 함.

----------- 2012.4.2 추가 ----------

----------- 2012.4.9 수정 ----------

많은 분들이 이 포스트를 검색으로 타고 오시기에.. 다시 수정.

Windows XP 64bit에서는 첨부한 WIC가 정상적으로 설치되지만 Windows 7 64bit 에서는 

VersionPMHdll64 이놈을 만족하지 못하는 문제가 발생한다. (오히려 32bit의 조건인 VersionPMHdll 이 놈을 만족시킨다.)

따라서 편법으로 64bit의 경우 32bit의 조건을 추가로 주도록한다. (즉, 둘 다 체크하도록)

<BypassIf Property="VersionPMHdll64" Compare="VersionGreaterThanOrEqualTo" Value="6.0.5840.16388"/>

<BypassIf Property="VersionPMHdll" Compare="VersionGreaterThanOrEqualTo" Value="6.0.5840.16388"/>

이렇게 해두면 Windows XP 64bit, Windows 7 64bit 모두 정상적으로 WIC를 배포할 수 있다.

수정된 Product.xml을 첨부한다.


내가 했던 삽질을 다른 분들은 하지 않길 바라며...

설정

트랙백

댓글