template 폴더에 압축파일을 두고 그것을 자동 압축 해제하도록 함 , webview2 runtime 을 추가

This commit is contained in:
2025-12-11 22:41:51 +09:00
parent 1fd7c25c8d
commit 6fbfa52a00
11 changed files with 386 additions and 4254 deletions

4
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,4 @@
{
"dotnet.preferCSharpExtension": true,
"dotnet.defaultSolution": "ArinWareT4.sln"
}

View File

@@ -1,6 +1,6 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2010 # Visual Studio 2022
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SubProject", "SubProject", "{4D184935-DE50-4DBA-9EBF-8C66C579B7DC}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SubProject", "SubProject", "{4D184935-DE50-4DBA-9EBF-8C66C579B7DC}"
EndProject EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ECO2_2025V1", "ArinWarev1\ECO2_2025V1.vbproj", "{D5C51BDE-68E5-42BC-B648-DB9CCF044703}" Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ECO2_2025V1", "ArinWarev1\ECO2_2025V1.vbproj", "{D5C51BDE-68E5-42BC-B648-DB9CCF044703}"

BIN
ArinWarev1/EBWebView.zip Normal file

Binary file not shown.

View File

@@ -719,6 +719,9 @@
<None Include="DataSet\DS2.xss"> <None Include="DataSet\DS2.xss">
<DependentUpon>DS2.xsd</DependentUpon> <DependentUpon>DS2.xsd</DependentUpon>
</None> </None>
<None Include="EBWebView.zip">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="login.dat"> <None Include="login.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
@@ -821,6 +824,9 @@
<Content Include="icon5.ico" /> <Content Include="icon5.ico" />
<None Include="Resources\select_by_difference.png" /> <None Include="Resources\select_by_difference.png" />
<None Include="Resources\page_copy.png" /> <None Include="Resources\page_copy.png" />
<Content Include="WebView2Loader.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="단축키.txt"> <Content Include="단축키.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
@@ -839,6 +845,12 @@
<Content Include="Forms_Input\ReadMe.txt"> <Content Include="Forms_Input\ReadMe.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content> </Content>
<None Include="WebView2Runtime.zip">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="wwwroot.zip">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="방위2.png" /> <None Include="방위2.png" />
<None Include="방위.png" /> <None Include="방위.png" />
<None Include="방위.jpg" /> <None Include="방위.jpg" />

View File

@@ -31,26 +31,27 @@ Partial Class Frm_WwwrootExtract
'lblStatus 'lblStatus
' '
Me.lblStatus.AutoSize = True Me.lblStatus.AutoSize = True
Me.lblStatus.Location = New System.Drawing.Point(30, 90) Me.lblStatus.Location = New System.Drawing.Point(34, 112)
Me.lblStatus.Name = "lblStatus" Me.lblStatus.Name = "lblStatus"
Me.lblStatus.Size = New System.Drawing.Size(113, 12) Me.lblStatus.Size = New System.Drawing.Size(142, 15)
Me.lblStatus.TabIndex = 0 Me.lblStatus.TabIndex = 0
Me.lblStatus.Text = "압축 해제 준비 중..." Me.lblStatus.Text = "압축 해제 준비 중..."
' '
'progressBar 'progressBar
' '
Me.progressBar.Location = New System.Drawing.Point(30, 110) Me.progressBar.Location = New System.Drawing.Point(34, 138)
Me.progressBar.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.progressBar.Name = "progressBar" Me.progressBar.Name = "progressBar"
Me.progressBar.Size = New System.Drawing.Size(440, 30) Me.progressBar.Size = New System.Drawing.Size(503, 38)
Me.progressBar.TabIndex = 1 Me.progressBar.TabIndex = 1
' '
'lblPercentage 'lblPercentage
' '
Me.lblPercentage.AutoSize = True Me.lblPercentage.AutoSize = True
Me.lblPercentage.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte)) Me.lblPercentage.Font = New System.Drawing.Font("굴림", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.lblPercentage.Location = New System.Drawing.Point(30, 150) Me.lblPercentage.Location = New System.Drawing.Point(34, 188)
Me.lblPercentage.Name = "lblPercentage" Me.lblPercentage.Name = "lblPercentage"
Me.lblPercentage.Size = New System.Drawing.Size(23, 12) Me.lblPercentage.Size = New System.Drawing.Size(28, 15)
Me.lblPercentage.TabIndex = 2 Me.lblPercentage.TabIndex = 2
Me.lblPercentage.Text = "0%" Me.lblPercentage.Text = "0%"
' '
@@ -58,22 +59,23 @@ Partial Class Frm_WwwrootExtract
' '
Me.lblTitle.AutoSize = True Me.lblTitle.AutoSize = True
Me.lblTitle.Font = New System.Drawing.Font("굴림", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte)) Me.lblTitle.Font = New System.Drawing.Font("굴림", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.lblTitle.Location = New System.Drawing.Point(30, 30) Me.lblTitle.Location = New System.Drawing.Point(34, 38)
Me.lblTitle.Name = "lblTitle" Me.lblTitle.Name = "lblTitle"
Me.lblTitle.Size = New System.Drawing.Size(239, 15) Me.lblTitle.Size = New System.Drawing.Size(297, 19)
Me.lblTitle.TabIndex = 3 Me.lblTitle.TabIndex = 3
Me.lblTitle.Text = "매뉴얼 파일 압축 해제 중입니다" Me.lblTitle.Text = "런타임 파일 압축 해제 중입니다"
' '
'Frm_WwwrootExtract 'Frm_WwwrootExtract
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(500, 200) Me.ClientSize = New System.Drawing.Size(571, 250)
Me.Controls.Add(Me.lblTitle) Me.Controls.Add(Me.lblTitle)
Me.Controls.Add(Me.lblPercentage) Me.Controls.Add(Me.lblPercentage)
Me.Controls.Add(Me.progressBar) Me.Controls.Add(Me.progressBar)
Me.Controls.Add(Me.lblStatus) Me.Controls.Add(Me.lblStatus)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.MaximizeBox = False Me.MaximizeBox = False
Me.MinimizeBox = False Me.MinimizeBox = False
Me.Name = "Frm_WwwrootExtract" Me.Name = "Frm_WwwrootExtract"

View File

@@ -4,20 +4,28 @@ Imports System.Threading.Tasks
Public Class Frm_WwwrootExtract Public Class Frm_WwwrootExtract
Dim extractPath As String
Dim zipPath As String
Public Sub New(targetpath As String, zipfile As String)
InitializeComponent()
Me.extractPath = targetpath
Me.zipPath = zipfile
End Sub
Private Sub Frm_WwwrootExtract_Load(sender As Object, e As EventArgs) Handles MyBase.Load Private Sub Frm_WwwrootExtract_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Show() Me.Show()
Application.DoEvents() Application.DoEvents()
' 폼이 로드될 때 자동으로 압축 해제 시작 ' 폼이 로드될 때 자동으로 압축 해제 시작
ExtractWwwrootAsync() ExtractTemplateFiles()
End Sub End Sub
Private Async Sub ExtractWwwrootAsync() Private Async Sub ExtractTemplateFiles()
Try Try
Dim extractPath As String = Path.Combine(Application.StartupPath, "wwwroot") ' Dim extractPath As String = TargetPath ' Path.Combine(Application.StartupPath, "wwwroot")
Dim zipPath As String = Path.Combine(extractPath, "wwwroot.zip") ' Dim zipPath As String = Path.Combine(extractPath, "wwwroot.zip")
' ZIP 파일 존재 여부 확인 ' ZIP 파일 존재 여부 확인
If Not File.Exists(zipPath) Then If Not File.Exists(zipPath) Then

View File

@@ -293,30 +293,45 @@ Public Class MdiMain
End Sub End Sub
Private Sub CheckAndExtractWwwroot() Private Sub CheckAndExtractWwwroot()
Try Try
' wwwroot 폴더 경로 확인 ' wwwroot 폴더 경로 확인
Dim wwwrootPath As String = Path.Combine(Application.StartupPath, "wwwroot") Dim templatePath As String = Path.Combine(Application.StartupPath, "Template")
Dim indexHtmlPath As String = Path.Combine(wwwrootPath, "index.html") If System.IO.Directory.Exists(templatePath) = False Then Return
Dim zipPath As String = Path.Combine(wwwrootPath, "wwwroot.zip")
' wwwroot 폴더가 없거나 index.html이 없는 경우 Dim zipfiles() As String = System.IO.Directory.GetFiles(templatePath, "*.zip")
If (Not Directory.Exists(wwwrootPath) OrElse Not File.Exists(indexHtmlPath)) Then If zipfiles.Length = 0 Then Return
' wwwroot.zip 파일이 존재하는지 확인
If File.Exists(zipPath) Then
' 압축 해제 폼 표시
Dim extractForm As New Frm_WwwrootExtract()
extractForm.ShowDialog()
' 압축 해제가 실패한 경우 '압축파일 이름으로 폴더를 생성해서 압축 해제한다.
If extractForm.DialogResult <> DialogResult.OK Then For Each zipfilename As String In zipfiles
MessageBox.Show("매뉴얼 파일 압축 해제에 실패했습니다." & vbCrLf & "일부 기능이 제한될 수 있습니다.",
"경고", MessageBoxButtons.OK, MessageBoxIcon.Warning) Dim nameOnly As String = System.IO.Path.GetFileNameWithoutExtension(zipfilename)
End If Dim zipcheckfile As String = zipfilename + ".complete"
If System.IO.File.Exists(zipcheckfile) Then Continue For
Dim targetPath As New DirectoryInfo(Path.Combine(Application.StartupPath, nameOnly))
'//폴더가 존재하지 않는경우 생성
If targetPath.Exists = False Then targetPath.Create()
' 압축 해제 폼 표시
Dim extractForm As New Frm_WwwrootExtract(targetPath.FullName, zipfilename)
extractForm.ShowDialog()
' 압축 해제가 실패한 경우
If extractForm.DialogResult <> DialogResult.OK Then
MessageBox.Show("파일 압축 해제에 실패했습니다." & vbCrLf & "일부 기능이 제한될 수 있습니다.",
"경고", MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
System.IO.File.WriteAllText(zipcheckfile, "complete", System.Text.Encoding.UTF8)
End If End If
End If Next
Catch ex As Exception Catch ex As Exception
' 오류가 발생해도 프로그램은 계속 실행 ' 오류가 발생해도 프로그램은 계속 실행
MessageBox.Show("매뉴얼 파일 확인 중 오류가 발생했습니다: " & ex.Message, MessageBox.Show("매뉴얼 파일 확인 중 오류가 발생했습니다: " & ex.Message,
"경고", MessageBoxButtons.OK, MessageBoxIcon.Warning) "경고", MessageBoxButtons.OK, MessageBoxIcon.Warning)
End Try End Try
End Sub End Sub

Binary file not shown.

Binary file not shown.

BIN
ArinWarev1/wwwroot.zip Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff