선택
[C#] 4. WebView2 속성 설정으로 WebView 런타임 Fixed Version 사용 본문
2022.08.02 - [프로그래밍/C#] - [C#] 1. WebView2 구성 및 설치
[C#] 1. WebView2 구성 및 설치
모 프로젝트를 진행하며 IE 기반의 구 ActiveX 시스템을 Non-ActiveX로 변환하는 작업을 했다. 작업을 하면서 WebView2를 활용했는데 아무래도 IE가 종료된 지금 WebView2로 대응하는 경우가 많아지지 않을
limchoice.tistory.com
이전 포스팅에서 언급했던 것처럼 WebView2 런타임은 3가지 방법으로 설치할 수 있다.
C# 코드로 WebView2 속성값을 변경해 WebView2 런타임 프로그램을 Fixed Version으로 불러올 수 있는데, 이에 대해서 자세히 설명하고자 한다.
프로그램 코딩을 할 때 WebView2 런타임 프로그램 버전이 102버전이라고 가정해보자.
처음 만들었을 때는 잘 작동하나, 시간이 지날수록 WebView2 런타임 프로그램은 업데이트를 거쳐 더 높은 버전으로 올라갈 것이고 추후에 프로그램이 잘 동작하는지 호환을 하는지 보장을 할 수 없게 된다.
그렇다면 어떻게 해야 할까?
WebView2 런타임 Fixed Version을 프로그램과 같이 동봉해 배포하게 된다면 사용자의 PC에 설치되어 있는 WebView2 런타임 프로그램을 바라보지 않고 Fixed Version을 바라보게 되어 업데이트에 영향을 받지 않게 된다.
그렇게 된다면 프로그램의 호환성을 보장할 수 있을 것이다.
1. Fixed Version을 다운로드 받은 후 위치를 정하고 압축 풀기
Fixed Version 설치 위치는 C드라이브와 같은 고정 위치를 정하는 것이 더 좋을 수 있다.
예) C:\WebView2\FixedVersion\
필자는 테스트를 위해 프로젝트 폴더와 동일한 경로에 압축을 풀었다.
C:\Users\Home\Desktop\Example\WebView2Sample\Runtime\Microsoft.WebView2.FixedVersionRuntime.102.0.1245.41.x86
2. 폴더 안에 파일이 잘 있는지 확인, 자신이 원하는 버전이 맞는지 확인
오프라인으로 최신버전인 103버전을 설치했기 때문에 비교를 하고자 Fixed Version은 이전 버전인 102버전을 다운로드 하였다.
3. WebView2 런타임 Fixed Version의 폴더 경로를 속성으로 지정하기
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CoreWebView2CreationProperties webViewProperties = new CoreWebView2CreationProperties();
webViewProperties.BrowserExecutableFolder =
@"C:\Users\Home\Desktop\Example\WebView2Sample\Runtime\Microsoft.WebView2.FixedVersionRuntime.102.0.1245.41.x86";
webView21.CreationProperties = webViewProperties;
}
private void button1_Click(object sender, EventArgs e)
{
webView21.Source = new Uri(textBox1.Text);
}
}
윈폼 생성자에 CoreWebView2CreationProperties 클래스를 선언하고 BrowserExecutableFolder 속성 값을 Fixed Version 폴더로 지정해주면 된다.
이후 웹뷰 컨트롤의 속성에 붙여주기만 하면 끝난다.
4. 확인
Process Explorer을 이용해 C# exe가 어느 WebView2 edge를 읽는지 확인할 수 있다.
속성값을 지정해주지 않았을 경우에는 기본적으로 설치되어 있는 경로를 바라보게 된다. (103버전)
그러나 프로퍼티에 Fixed Version이 설치된 폴더 경로를 지정하고 WebView CreationProperties에 연결해 준다면 지정된 경로를 바라보게 된다. (102버전)
프로퍼티를 활용한다면 WebView 런타임 프로그램의 독립성을 보장받을 수 있게 되어 향후 버전 업데이트에 따른 호환성에 영향을 받지 않게 된다.
'프로그래밍 > C#, .NET' 카테고리의 다른 글
MFC SysTreeView32 컨트롤 내 node 텍스트 값 추출하기 (0) | 2023.11.06 |
---|---|
[C#] 5. WebView2 양방향 통신 (AddHostObjectToScript, ExecuteScriptAsync) (0) | 2022.08.02 |
[C#] 3. WebView2를 이용해 사이트 호출 (0) | 2022.08.02 |
[C#] 2. WebView2 패키지 설치 (Nuget) (0) | 2022.08.02 |
[C#] 1. WebView2 구성 및 설치 (0) | 2022.08.02 |