Languages/C#2016. 2. 23. 17:55

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&amp;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"/>

 

<PackageFile Name="vcredist_x86.exe"/>

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

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

   http://stackoverflow.com/questions/12206314/detect-if-visual-c-redistributable-for-visual-studio-2012-is-installed

 

'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
Posted by 열ㅇl
Window/WPF2016. 1. 29. 00:19

개발을 진행하다 보면 다양한 스타일의 버튼을 만들게 되는데요.

Round 스타일이나 Mouse Over, Pressed 같은 경우에 색을 변경해야 경우가 많습니다.

이런 속성을 추가한 Custom Button을 만들어 사용하는 것도 한 방법이 되겠습니다.


그래서 CornerRadius 와 Mouse Over, Pressed 이벤트시 Background 와 BorderBrush 의 색상을 변경하는 프로퍼티를 가지는

간단한 버튼 컨트롤을 만들어 보았습니다.



xaml


cs

 

CustomButton.xaml

CustomButton.xaml.cs

 

'Window > WPF' 카테고리의 다른 글

VisualStudio 2017에 .NET 4.0 Bootstrapper 설정  (0) 2018.02.21
Virtual Keyboard ( Hangul )  (1) 2015.11.23
Pixel Shader Effect in WPF  (0) 2015.02.26
[ WPF ] Word Cloud  (0) 2014.02.23
[ WPF ] VisualTree FindChild  (0) 2012.08.17
Posted by 열ㅇl
Languages/C#2015. 12. 1. 18:42

ClickOnce 필수 구성 요소에 WIC (Windows Imaging Component ) 를 포함 시켜야 하는 경우가 있어서

검색해 보니 해당 Visual Studio 버전의 Bootstrapper 폴더에 패키지를 넣으면 해결.

 

reference: http://wizzard0.livejournal.com/213674.html

 

Visual Studio 2015 기준

C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper

 

의존성을 갖는 경우 해당 .NET Framework 버전 폴더의 Product.xml 파일에 다음 구문을 추가한다.

 

  <RelatedProducts>
    <EitherProducts>
      <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
      <DependsOnProduct Code="Microsoft.Windows.Installer.4.5" />
    </EitherProducts>
    <DependsOnProduct Code="Windows.Imaging.Component" />
    <IncludesProduct Code=".NETFramework,Version=v4.0,Profile=Client" />
  </RelatedProducts>

 

하지만 Windows XP, 2003 에서만 WIC를 포함하고 윈도우 비스타 이상부터는 WIC를 포함하면 설치오류가 발생한다.

그래서 윈도우 비스타 이후부터는 ClickOnce로 설치시 설치되지 않도록 수정해줘야 한다.


수정한 product.xml 파일을 첨부한다.


참고 사이트: http://reasty.tistory.com/10


product.xml

wic_bootstrapper_patch.exe


'Languages > C#' 카테고리의 다른 글

ClickOnce Custom Publish Page  (0) 2016.12.09
ClickOnce Custom Bootstrap ( Visual C++ redistributable )  (2) 2016.02.23
[ C# ] Change Audio Device  (0) 2013.08.06
[ C# ] FTP  (4) 2013.02.26
[ C# ] Object To Byte, Byte To Byte  (0) 2013.02.26
Posted by 열ㅇl