ClickOnce 배포시 Bootstrap에서 필요한 버전의 Visual C++ Redistributable 을 추가하기 위한 방법입니다.
설치된 Visual Studio 버전의 Bootstrapper\Packages 폴더안에 새로운 폴더를 생성합니다.
vs2015 기준 ( C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages )
Visual C++ redistributable 2012을 추가해보겠습니다.
기존 vcredist_x86 폴더를 복사 후 이름을 변경합니다.
product.xml 파일을 수정합니다.
InstallConditions 에서 설치 조건을 설정할 수 있습니다.
XP 일경우 조건들을 수정하거나 주석 처리해주세요.
en 폴더 안의 package.xml 파일을 수정합니다.
설치할 프로그램을 웹에서 다운 받거나 로컬에 지정할 수 있습니다.
1. 웹에서 다운 받을 경우
VCRedistExe 의 경로를 다운 받을 주소로 변경합니다.
<String Name="VCRedistExe">http://go.microsoft.com/fwlink/?LinkID=247126&clcid=0x409</String>
<String Name="VCRedistExe">http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe</String>
다음 주소에서 각 버전의 주소를 확인할 수 있습니다.
https://npackd.appspot.com/p/com.microsoft.VisualCPPRedistributable/11.0.61030
2. 로컬 파일을 사용할 경우
product.xml 파일과 같은 위치에 해당 버전의 redistributable 파일을 다운받아 놓습니다.
product.xml 의 HomeSite를 삭제합니다.
<PackageFile Name="vcredist_x86.exe" HomeSite="VCRedistExe"/>
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Visual C++ 2012 Redistributable (x86) 은 설치 여부 확인이 제대로 되지 않아서 계속 설치하는 문제가 발생하여많은 시도끝에
해결된 방안을 추가합니다.
MsiProductCheck 대신 RegistryCheck 를 사용하여 설치된 레지스트리 값을 비교하여 설치여부를 판단했습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Dependencies\{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}
product.xml
package.xml
reference: https://msdn.microsoft.com/ko-kr/library/ms229432.aspx
'Languages > C#' 카테고리의 다른 글
Jenkins를 통해 AWS 에 ClickOnce 배포 (0) | 2017.11.30 |
---|---|
ClickOnce Custom Publish Page (0) | 2016.12.09 |
ClickOnce Custom BootStrapper (0) | 2015.12.01 |
[ C# ] Change Audio Device (0) | 2013.08.06 |
[ C# ] FTP (4) | 2013.02.26 |