Q] ClickOnce 의 설치 Folder 를 변경할 수 없을까요?
ClickOnce 의 설치 Location 은 다음과 같습니다.
- On XP : %userprofile%\Local Settings\Apps (e.g. C:\Documents & Settings\kikiwaka\Local Settings\Apps)
- On VISTA: %userprofile%\AppData\Local\Apps (e.g. C:\users\kikiwaka\AppData\Local\Apps)
중요한 것은 실제 설치되는 Folder 위치입니다. 이 위치는 Application Cache 로서, 지정할 수도 없으며 찾을 수 있는 방법 또한 존재 하지 않습니다. 따라서, Custom 하게 해당 Folder 를 변경하거나, 설치되는 Folder 를 찾을 수 있는 방법이 존재 하지 않습니다.
이는 ClickOnce 의 By Design 입니다.
아래와 같이 이에 대해서는 차기 Version 에서 고려 대상입니다만, 어느 Version 에서 DCR 이 이루어질지는 확인되지 않았습니다. (This feature is under consideration for changes in further releases of Visual Studio but not confirmed for the next release.)
바로가기 정보를 사용해서 해당 Application 의 실행 파일 위치를 찾을 수 있는 방법은 없습니다.
현실적인 대안은 Local 에 설치 되어 있는 실행파일을 직접 실행하는 것이 아닌, Deploy Server 에 있는 Application을 실행하는 방법(URI) 입니다.
http://DeploymentServerURI/myapp.application#myapp.application 와 같은 형태가 될 수 있을 것입니다.
앞서 설명 드린 바와 같이 대부분 ClickOnce 를 재사용 하시는 경우 QueryString을 사용하게 됩니다.
ClickOnce 를 사용하는 배포하는 Application 에 Parameter 를 전달해야 하는 경우, 다음과 같이 QueryString 을 전달하는 Method를 사용하면 됩니다.
예를 들어, http://DeploymentServerURI/myapp.application?usernum=[사번] 이 될 수 있습니다.
1. System.Web / System.Deployment Reference 를 추가합니다.
using System.Web;
using System.Collections.Specialized;
using System.Deployment.Application;
2. 배포 TAB 에서 다음과 같이 ClickOnce Option 을 활성화 합니다.
Allow URL parameters to be passed to application

http://sypyo-001:8080/ClickOnceQueryString.application?Name=SungYongPyo&Num=01
와 같이 실행하게 되면,

의 결과를 가져오게 됩니다.
Source 는 다음과 같습니다.
using System; namespace ClickOnceQueryString if (ApplicationDeployment.IsNetworkDeployed) static void Main(string[] args) if (NVC.Count > 0) Console.WriteLine("Key=Name : Item={0} using Item Property", NVC["Name"]); Console.ReadLine(); } |
덧글