Compare commits
3 Commits
76c301cede
...
029072d5c2
| Author | SHA1 | Date |
|---|---|---|
|
|
029072d5c2 | |
|
|
a8edd1f623 | |
|
|
3a8184129d |
|
|
@ -16,9 +16,9 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Remove="Resource\EIImageViewerData.rar" />
|
<None Remove="Resource\EIMedViewerData.rar" />
|
||||||
<None Remove="Resource\EIImageViewerService.rar" />
|
<None Remove="Resource\EIMedViewerService.rar" />
|
||||||
<None Remove="Resource\EIImageViewerWeb.rar" />
|
<None Remove="Resource\EIMedViewerWeb.rar" />
|
||||||
<None Remove="Resource\UnInstall.exe" />
|
<None Remove="Resource\UnInstall.exe" />
|
||||||
<None Remove="ServiceConfig.Json" />
|
<None Remove="ServiceConfig.Json" />
|
||||||
<None Remove="Resource\Data\data.sql" />
|
<None Remove="Resource\Data\data.sql" />
|
||||||
|
|
@ -28,13 +28,13 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="favicon.ico" />
|
<Content Include="favicon.ico" />
|
||||||
<Content Include="Resource\EIImageViewerData.rar">
|
<Content Include="Resource\EIMedViewerData.rar">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="Resource\EIImageViewerService.rar">
|
<Content Include="Resource\EIMedViewerService.rar">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="Resource\EIImageViewerWeb.rar">
|
<Content Include="Resource\EIMedViewerWeb.rar">
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="Resource\Data\data.sql">
|
<Content Include="Resource\Data\data.sql">
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.8.34511.84
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EI_Med_Viewer_Installer", "EI_Med_Viewer_Installer.csproj", "{0A143F47-44C3-4F41-AC47-0C622BDE9087}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Activation", "Other\Activation\Activation.csproj", "{FA2D3538-9C7A-4E50-82C6-B4D10496278E}"
|
||||||
|
EndProject
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UnInstall", "Other\510k-UnInstall\UnInstall.csproj", "{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x64 = Debug|x64
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x64 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{0A143F47-44C3-4F41-AC47-0C622BDE9087}.Release|x64.Build.0 = Release|x64
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{FA2D3538-9C7A-4E50-82C6-B4D10496278E}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Debug|x64.ActiveCfg = Debug|x64
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Debug|x64.Build.0 = Debug|x64
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Release|x64.ActiveCfg = Release|x64
|
||||||
|
{9B622502-FF2A-4CC9-A0A6-DFF57A5917D7}.Release|x64.Build.0 = Release|x64
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {5E112DA1-00FF-40F5-A027-A15C640DB1FD}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
|
|
@ -84,71 +84,71 @@
|
||||||
groupBox1.Controls.Add(label1);
|
groupBox1.Controls.Add(label1);
|
||||||
groupBox1.Location = new Point(11, 12);
|
groupBox1.Location = new Point(11, 12);
|
||||||
groupBox1.Name = "groupBox1";
|
groupBox1.Name = "groupBox1";
|
||||||
groupBox1.Size = new Size(547, 205);
|
groupBox1.Size = new Size(614, 205);
|
||||||
groupBox1.TabIndex = 0;
|
groupBox1.TabIndex = 0;
|
||||||
groupBox1.TabStop = false;
|
groupBox1.TabStop = false;
|
||||||
groupBox1.Text = "第一步:验证数据库";
|
groupBox1.Text = "Step 1: Validate Database";
|
||||||
//
|
//
|
||||||
// connectButton
|
// connectButton
|
||||||
//
|
//
|
||||||
connectButton.Location = new Point(195, 150);
|
connectButton.Location = new Point(223, 145);
|
||||||
connectButton.Name = "connectButton";
|
connectButton.Name = "connectButton";
|
||||||
connectButton.Size = new Size(128, 40);
|
connectButton.Size = new Size(149, 40);
|
||||||
connectButton.TabIndex = 6;
|
connectButton.TabIndex = 6;
|
||||||
connectButton.Text = "测试连接";
|
connectButton.Text = "Test Connection";
|
||||||
connectButton.UseVisualStyleBackColor = true;
|
connectButton.UseVisualStyleBackColor = true;
|
||||||
connectButton.Click += connectButton_Click;
|
connectButton.Click += connectButton_Click;
|
||||||
//
|
//
|
||||||
// passwordTextBox
|
// passwordTextBox
|
||||||
//
|
//
|
||||||
passwordTextBox.Location = new Point(154, 113);
|
passwordTextBox.Location = new Point(178, 113);
|
||||||
passwordTextBox.Name = "passwordTextBox";
|
passwordTextBox.Name = "passwordTextBox";
|
||||||
passwordTextBox.PasswordChar = '*';
|
passwordTextBox.PasswordChar = '*';
|
||||||
passwordTextBox.Size = new Size(271, 23);
|
passwordTextBox.Size = new Size(303, 23);
|
||||||
passwordTextBox.TabIndex = 5;
|
passwordTextBox.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// usernameTextBox
|
// usernameTextBox
|
||||||
//
|
//
|
||||||
usernameTextBox.Location = new Point(156, 73);
|
usernameTextBox.Location = new Point(180, 73);
|
||||||
usernameTextBox.Name = "usernameTextBox";
|
usernameTextBox.Name = "usernameTextBox";
|
||||||
usernameTextBox.Size = new Size(271, 23);
|
usernameTextBox.Size = new Size(303, 23);
|
||||||
usernameTextBox.TabIndex = 4;
|
usernameTextBox.TabIndex = 4;
|
||||||
usernameTextBox.Text = "sa";
|
usernameTextBox.Text = "sa";
|
||||||
//
|
//
|
||||||
// serverTextBox
|
// serverTextBox
|
||||||
//
|
//
|
||||||
serverTextBox.Location = new Point(156, 33);
|
serverTextBox.Location = new Point(180, 33);
|
||||||
serverTextBox.Name = "serverTextBox";
|
serverTextBox.Name = "serverTextBox";
|
||||||
serverTextBox.Size = new Size(271, 23);
|
serverTextBox.Size = new Size(303, 23);
|
||||||
serverTextBox.TabIndex = 3;
|
serverTextBox.TabIndex = 3;
|
||||||
serverTextBox.Text = ".";
|
serverTextBox.Text = ".";
|
||||||
//
|
//
|
||||||
// label3
|
// label3
|
||||||
//
|
//
|
||||||
label3.AutoSize = true;
|
label3.AutoSize = true;
|
||||||
label3.Location = new Point(107, 113);
|
label3.Location = new Point(76, 113);
|
||||||
label3.Name = "label3";
|
label3.Name = "label3";
|
||||||
label3.Size = new Size(32, 17);
|
label3.Size = new Size(64, 17);
|
||||||
label3.TabIndex = 2;
|
label3.TabIndex = 2;
|
||||||
label3.Text = "密码";
|
label3.Text = "Password";
|
||||||
//
|
//
|
||||||
// label2
|
// label2
|
||||||
//
|
//
|
||||||
label2.AutoSize = true;
|
label2.AutoSize = true;
|
||||||
label2.Location = new Point(101, 73);
|
label2.Location = new Point(119, 73);
|
||||||
label2.Name = "label2";
|
label2.Name = "label2";
|
||||||
label2.Size = new Size(44, 17);
|
label2.Size = new Size(21, 17);
|
||||||
label2.TabIndex = 1;
|
label2.TabIndex = 1;
|
||||||
label2.Text = "登录名";
|
label2.Text = "ID";
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
label1.AutoSize = true;
|
label1.AutoSize = true;
|
||||||
label1.Location = new Point(95, 33);
|
label1.Location = new Point(56, 33);
|
||||||
label1.Name = "label1";
|
label1.Name = "label1";
|
||||||
label1.Size = new Size(56, 17);
|
label1.Size = new Size(84, 17);
|
||||||
label1.TabIndex = 0;
|
label1.TabIndex = 0;
|
||||||
label1.Text = "服务器名";
|
label1.Text = "Server Name";
|
||||||
//
|
//
|
||||||
// groupBox2
|
// groupBox2
|
||||||
//
|
//
|
||||||
|
|
@ -172,24 +172,24 @@
|
||||||
groupBox2.Controls.Add(label5);
|
groupBox2.Controls.Add(label5);
|
||||||
groupBox2.Location = new Point(12, 223);
|
groupBox2.Location = new Point(12, 223);
|
||||||
groupBox2.Name = "groupBox2";
|
groupBox2.Name = "groupBox2";
|
||||||
groupBox2.Size = new Size(546, 468);
|
groupBox2.Size = new Size(613, 468);
|
||||||
groupBox2.TabIndex = 1;
|
groupBox2.TabIndex = 1;
|
||||||
groupBox2.TabStop = false;
|
groupBox2.TabStop = false;
|
||||||
groupBox2.Text = "第二步: 部署参数配置";
|
groupBox2.Text = "Step 2: Deployment Parameters Configuration";
|
||||||
//
|
//
|
||||||
// nginxServiceDisplayNameTbox
|
// nginxServiceDisplayNameTbox
|
||||||
//
|
//
|
||||||
nginxServiceDisplayNameTbox.Location = new Point(151, 368);
|
nginxServiceDisplayNameTbox.Location = new Point(234, 368);
|
||||||
nginxServiceDisplayNameTbox.Name = "nginxServiceDisplayNameTbox";
|
nginxServiceDisplayNameTbox.Name = "nginxServiceDisplayNameTbox";
|
||||||
nginxServiceDisplayNameTbox.Size = new Size(259, 23);
|
nginxServiceDisplayNameTbox.Size = new Size(260, 23);
|
||||||
nginxServiceDisplayNameTbox.TabIndex = 23;
|
nginxServiceDisplayNameTbox.TabIndex = 23;
|
||||||
nginxServiceDisplayNameTbox.Text = "EI_Nginx_Self_Starting";
|
nginxServiceDisplayNameTbox.Text = "EI_Nginx_Self_Starting";
|
||||||
//
|
//
|
||||||
// nginxServiceNameTbox
|
// nginxServiceNameTbox
|
||||||
//
|
//
|
||||||
nginxServiceNameTbox.Location = new Point(151, 322);
|
nginxServiceNameTbox.Location = new Point(234, 322);
|
||||||
nginxServiceNameTbox.Name = "nginxServiceNameTbox";
|
nginxServiceNameTbox.Name = "nginxServiceNameTbox";
|
||||||
nginxServiceNameTbox.Size = new Size(259, 23);
|
nginxServiceNameTbox.Size = new Size(260, 23);
|
||||||
nginxServiceNameTbox.TabIndex = 22;
|
nginxServiceNameTbox.TabIndex = 22;
|
||||||
nginxServiceNameTbox.Text = "EI_Nginx";
|
nginxServiceNameTbox.Text = "EI_Nginx";
|
||||||
//
|
//
|
||||||
|
|
@ -198,142 +198,142 @@
|
||||||
label12.AutoSize = true;
|
label12.AutoSize = true;
|
||||||
label12.Location = new Point(27, 368);
|
label12.Location = new Point(27, 368);
|
||||||
label12.Name = "label12";
|
label12.Name = "label12";
|
||||||
label12.Size = new Size(111, 17);
|
label12.Size = new Size(203, 17);
|
||||||
label12.TabIndex = 21;
|
label12.TabIndex = 21;
|
||||||
label12.Text = "nginx服务显示名称";
|
label12.Text = "Displayed Name of Nginx Service";
|
||||||
//
|
//
|
||||||
// label13
|
// label13
|
||||||
//
|
//
|
||||||
label13.AutoSize = true;
|
label13.AutoSize = true;
|
||||||
label13.Location = new Point(51, 322);
|
label13.Location = new Point(104, 322);
|
||||||
label13.Name = "label13";
|
label13.Name = "label13";
|
||||||
label13.Size = new Size(87, 17);
|
label13.Size = new Size(126, 17);
|
||||||
label13.TabIndex = 20;
|
label13.TabIndex = 20;
|
||||||
label13.Text = "nginx服务名称";
|
label13.Text = "Nginx Service Name";
|
||||||
//
|
//
|
||||||
// confimDeployBtn
|
// confimDeployBtn
|
||||||
//
|
//
|
||||||
confimDeployBtn.Enabled = false;
|
confimDeployBtn.Enabled = false;
|
||||||
confimDeployBtn.Location = new Point(195, 409);
|
confimDeployBtn.Location = new Point(222, 409);
|
||||||
confimDeployBtn.Name = "confimDeployBtn";
|
confimDeployBtn.Name = "confimDeployBtn";
|
||||||
confimDeployBtn.Size = new Size(128, 40);
|
confimDeployBtn.Size = new Size(149, 40);
|
||||||
confimDeployBtn.TabIndex = 19;
|
confimDeployBtn.TabIndex = 19;
|
||||||
confimDeployBtn.Text = "确认部署配置";
|
confimDeployBtn.Text = "Confirm Configuration";
|
||||||
confimDeployBtn.UseVisualStyleBackColor = true;
|
confimDeployBtn.UseVisualStyleBackColor = true;
|
||||||
confimDeployBtn.Click += confimDeployBtn_Click;
|
confimDeployBtn.Click += confimDeployBtn_Click;
|
||||||
//
|
//
|
||||||
// serviceDisplayNameTBox
|
// serviceDisplayNameTBox
|
||||||
//
|
//
|
||||||
serviceDisplayNameTBox.Location = new Point(152, 274);
|
serviceDisplayNameTBox.Location = new Point(235, 274);
|
||||||
serviceDisplayNameTBox.Name = "serviceDisplayNameTBox";
|
serviceDisplayNameTBox.Name = "serviceDisplayNameTBox";
|
||||||
serviceDisplayNameTBox.Size = new Size(259, 23);
|
serviceDisplayNameTBox.Size = new Size(260, 23);
|
||||||
serviceDisplayNameTBox.TabIndex = 16;
|
serviceDisplayNameTBox.TabIndex = 16;
|
||||||
serviceDisplayNameTBox.Text = "EI_Image_Viewer_DisplayName";
|
serviceDisplayNameTBox.Text = "EI_Med_Viewer_DisplayName";
|
||||||
//
|
//
|
||||||
// serviceNameTBox
|
// serviceNameTBox
|
||||||
//
|
//
|
||||||
serviceNameTBox.Location = new Point(152, 228);
|
serviceNameTBox.Location = new Point(235, 228);
|
||||||
serviceNameTBox.Name = "serviceNameTBox";
|
serviceNameTBox.Name = "serviceNameTBox";
|
||||||
serviceNameTBox.Size = new Size(259, 23);
|
serviceNameTBox.Size = new Size(260, 23);
|
||||||
serviceNameTBox.TabIndex = 15;
|
serviceNameTBox.TabIndex = 15;
|
||||||
serviceNameTBox.Text = "EI_Image_Viewer";
|
serviceNameTBox.Text = "EI_Med_Viewer";
|
||||||
//
|
//
|
||||||
// label11
|
// label11
|
||||||
//
|
//
|
||||||
label11.AutoSize = true;
|
label11.AutoSize = true;
|
||||||
label11.Location = new Point(11, 277);
|
label11.Location = new Point(2, 277);
|
||||||
label11.Name = "label11";
|
label11.Name = "label11";
|
||||||
label11.Size = new Size(128, 17);
|
label11.Size = new Size(228, 17);
|
||||||
label11.TabIndex = 14;
|
label11.TabIndex = 14;
|
||||||
label11.Text = "网站后端服务显示名称";
|
label11.Text = "Displayed Name of Back-end Service";
|
||||||
//
|
//
|
||||||
// label10
|
// label10
|
||||||
//
|
//
|
||||||
label10.AutoSize = true;
|
label10.AutoSize = true;
|
||||||
label10.Location = new Point(35, 231);
|
label10.Location = new Point(79, 231);
|
||||||
label10.Name = "label10";
|
label10.Name = "label10";
|
||||||
label10.Size = new Size(104, 17);
|
label10.Size = new Size(151, 17);
|
||||||
label10.TabIndex = 13;
|
label10.TabIndex = 13;
|
||||||
label10.Text = "网站后端服务名称";
|
label10.Text = " Back-end Service Name";
|
||||||
//
|
//
|
||||||
// selectPathBtn
|
// selectPathBtn
|
||||||
//
|
//
|
||||||
selectPathBtn.Enabled = false;
|
selectPathBtn.Enabled = false;
|
||||||
selectPathBtn.Location = new Point(429, 43);
|
selectPathBtn.Location = new Point(509, 43);
|
||||||
selectPathBtn.Name = "selectPathBtn";
|
selectPathBtn.Name = "selectPathBtn";
|
||||||
selectPathBtn.Size = new Size(95, 27);
|
selectPathBtn.Size = new Size(95, 27);
|
||||||
selectPathBtn.TabIndex = 12;
|
selectPathBtn.TabIndex = 12;
|
||||||
selectPathBtn.Text = "选择";
|
selectPathBtn.Text = "Select";
|
||||||
selectPathBtn.UseVisualStyleBackColor = true;
|
selectPathBtn.UseVisualStyleBackColor = true;
|
||||||
selectPathBtn.Click += selectPathBtn_Click;
|
selectPathBtn.Click += selectPathBtn_Click;
|
||||||
//
|
//
|
||||||
// folderPathTbox
|
// folderPathTbox
|
||||||
//
|
//
|
||||||
folderPathTbox.Enabled = false;
|
folderPathTbox.Enabled = false;
|
||||||
folderPathTbox.Location = new Point(152, 44);
|
folderPathTbox.Location = new Point(235, 44);
|
||||||
folderPathTbox.Name = "folderPathTbox";
|
folderPathTbox.Name = "folderPathTbox";
|
||||||
folderPathTbox.Size = new Size(259, 23);
|
folderPathTbox.Size = new Size(260, 23);
|
||||||
folderPathTbox.TabIndex = 11;
|
folderPathTbox.TabIndex = 11;
|
||||||
//
|
//
|
||||||
// label9
|
// label9
|
||||||
//
|
//
|
||||||
label9.AutoSize = true;
|
label9.AutoSize = true;
|
||||||
label9.Location = new Point(83, 48);
|
label9.Location = new Point(123, 48);
|
||||||
label9.Name = "label9";
|
label9.Name = "label9";
|
||||||
label9.Size = new Size(56, 17);
|
label9.Size = new Size(107, 17);
|
||||||
label9.TabIndex = 10;
|
label9.TabIndex = 10;
|
||||||
label9.Text = "部署路径";
|
label9.Text = "Deployment Path";
|
||||||
//
|
//
|
||||||
// dbNameTBox
|
// dbNameTBox
|
||||||
//
|
//
|
||||||
dbNameTBox.Location = new Point(152, 182);
|
dbNameTBox.Location = new Point(235, 182);
|
||||||
dbNameTBox.Name = "dbNameTBox";
|
dbNameTBox.Name = "dbNameTBox";
|
||||||
dbNameTBox.Size = new Size(259, 23);
|
dbNameTBox.Size = new Size(260, 23);
|
||||||
dbNameTBox.TabIndex = 9;
|
dbNameTBox.TabIndex = 9;
|
||||||
dbNameTBox.Text = "IRaCIS";
|
dbNameTBox.Text = "IRaCIS";
|
||||||
//
|
//
|
||||||
// label8
|
// label8
|
||||||
//
|
//
|
||||||
label8.AutoSize = true;
|
label8.AutoSize = true;
|
||||||
label8.Location = new Point(47, 185);
|
label8.Location = new Point(54, 185);
|
||||||
label8.Name = "label8";
|
label8.Name = "label8";
|
||||||
label8.Size = new Size(92, 17);
|
label8.Size = new Size(176, 17);
|
||||||
label8.TabIndex = 8;
|
label8.TabIndex = 8;
|
||||||
label8.Text = "部署数据库名称";
|
label8.Text = "Deployment Database Name";
|
||||||
//
|
//
|
||||||
// apiPortTBox
|
// apiPortTBox
|
||||||
//
|
//
|
||||||
apiPortTBox.Location = new Point(152, 136);
|
apiPortTBox.Location = new Point(235, 136);
|
||||||
apiPortTBox.Name = "apiPortTBox";
|
apiPortTBox.Name = "apiPortTBox";
|
||||||
apiPortTBox.Size = new Size(259, 23);
|
apiPortTBox.Size = new Size(260, 23);
|
||||||
apiPortTBox.TabIndex = 5;
|
apiPortTBox.TabIndex = 5;
|
||||||
apiPortTBox.Text = "7100";
|
apiPortTBox.Text = "7100";
|
||||||
//
|
//
|
||||||
// nginxPortTBox
|
// nginxPortTBox
|
||||||
//
|
//
|
||||||
nginxPortTBox.Location = new Point(152, 90);
|
nginxPortTBox.Location = new Point(235, 90);
|
||||||
nginxPortTBox.Name = "nginxPortTBox";
|
nginxPortTBox.Name = "nginxPortTBox";
|
||||||
nginxPortTBox.Size = new Size(259, 23);
|
nginxPortTBox.Size = new Size(260, 23);
|
||||||
nginxPortTBox.TabIndex = 4;
|
nginxPortTBox.TabIndex = 4;
|
||||||
nginxPortTBox.Text = "9520";
|
nginxPortTBox.Text = "9520";
|
||||||
//
|
//
|
||||||
// label4
|
// label4
|
||||||
//
|
//
|
||||||
label4.AutoSize = true;
|
label4.AutoSize = true;
|
||||||
label4.Location = new Point(11, 140);
|
label4.Location = new Point(48, 140);
|
||||||
label4.Name = "label4";
|
label4.Name = "label4";
|
||||||
label4.Size = new Size(128, 17);
|
label4.Size = new Size(182, 17);
|
||||||
label4.TabIndex = 3;
|
label4.TabIndex = 3;
|
||||||
label4.Text = "网站后端服务启动端口";
|
label4.Text = "Back-end Service Startup Port";
|
||||||
//
|
//
|
||||||
// label5
|
// label5
|
||||||
//
|
//
|
||||||
label5.AutoSize = true;
|
label5.AutoSize = true;
|
||||||
label5.Location = new Point(35, 93);
|
label5.Location = new Point(94, 93);
|
||||||
label5.Name = "label5";
|
label5.Name = "label5";
|
||||||
label5.Size = new Size(104, 17);
|
label5.Size = new Size(136, 17);
|
||||||
label5.TabIndex = 2;
|
label5.TabIndex = 2;
|
||||||
label5.Text = "网站前端访问端口";
|
label5.Text = "Front-end Access Port";
|
||||||
//
|
//
|
||||||
// groupBox3
|
// groupBox3
|
||||||
//
|
//
|
||||||
|
|
@ -344,47 +344,47 @@
|
||||||
groupBox3.Controls.Add(machineCodeLB);
|
groupBox3.Controls.Add(machineCodeLB);
|
||||||
groupBox3.Controls.Add(label6);
|
groupBox3.Controls.Add(label6);
|
||||||
groupBox3.Controls.Add(label7);
|
groupBox3.Controls.Add(label7);
|
||||||
groupBox3.Location = new Point(11, 714);
|
groupBox3.Location = new Point(11, 708);
|
||||||
groupBox3.Name = "groupBox3";
|
groupBox3.Name = "groupBox3";
|
||||||
groupBox3.Size = new Size(544, 221);
|
groupBox3.Size = new Size(614, 227);
|
||||||
groupBox3.TabIndex = 2;
|
groupBox3.TabIndex = 2;
|
||||||
groupBox3.TabStop = false;
|
groupBox3.TabStop = false;
|
||||||
groupBox3.Text = "第三步:激活与部署";
|
groupBox3.Text = "Step 3: Activate and Deploy";
|
||||||
//
|
//
|
||||||
// btnCopy
|
// btnCopy
|
||||||
//
|
//
|
||||||
btnCopy.Location = new Point(429, 39);
|
btnCopy.Location = new Point(503, 39);
|
||||||
btnCopy.Name = "btnCopy";
|
btnCopy.Name = "btnCopy";
|
||||||
btnCopy.Size = new Size(93, 27);
|
btnCopy.Size = new Size(93, 27);
|
||||||
btnCopy.TabIndex = 13;
|
btnCopy.TabIndex = 13;
|
||||||
btnCopy.Text = "复制";
|
btnCopy.Text = "Copy";
|
||||||
btnCopy.UseVisualStyleBackColor = true;
|
btnCopy.UseVisualStyleBackColor = true;
|
||||||
btnCopy.Click += btnCopy_Click;
|
btnCopy.Click += btnCopy_Click;
|
||||||
//
|
//
|
||||||
// activeBtn
|
// activeBtn
|
||||||
//
|
//
|
||||||
activeBtn.Enabled = false;
|
activeBtn.Enabled = false;
|
||||||
activeBtn.Location = new Point(195, 139);
|
activeBtn.Location = new Point(222, 149);
|
||||||
activeBtn.Name = "activeBtn";
|
activeBtn.Name = "activeBtn";
|
||||||
activeBtn.Size = new Size(128, 40);
|
activeBtn.Size = new Size(149, 40);
|
||||||
activeBtn.TabIndex = 9;
|
activeBtn.TabIndex = 9;
|
||||||
activeBtn.Text = "激活并部署";
|
activeBtn.Text = "Activate and Deploy";
|
||||||
activeBtn.UseVisualStyleBackColor = true;
|
activeBtn.UseVisualStyleBackColor = true;
|
||||||
activeBtn.Click += activeBtn_Click;
|
activeBtn.Click += activeBtn_Click;
|
||||||
//
|
//
|
||||||
// KeySecreteTextBox
|
// KeySecreteTextBox
|
||||||
//
|
//
|
||||||
KeySecreteTextBox.Location = new Point(152, 92);
|
KeySecreteTextBox.Location = new Point(178, 92);
|
||||||
KeySecreteTextBox.Name = "KeySecreteTextBox";
|
KeySecreteTextBox.Name = "KeySecreteTextBox";
|
||||||
KeySecreteTextBox.Size = new Size(259, 23);
|
KeySecreteTextBox.Size = new Size(294, 23);
|
||||||
KeySecreteTextBox.TabIndex = 8;
|
KeySecreteTextBox.TabIndex = 8;
|
||||||
//
|
//
|
||||||
// machineTextBox
|
// machineTextBox
|
||||||
//
|
//
|
||||||
machineTextBox.Location = new Point(152, 42);
|
machineTextBox.Location = new Point(178, 42);
|
||||||
machineTextBox.Name = "machineTextBox";
|
machineTextBox.Name = "machineTextBox";
|
||||||
machineTextBox.ReadOnly = true;
|
machineTextBox.ReadOnly = true;
|
||||||
machineTextBox.Size = new Size(259, 23);
|
machineTextBox.Size = new Size(294, 23);
|
||||||
machineTextBox.TabIndex = 7;
|
machineTextBox.TabIndex = 7;
|
||||||
//
|
//
|
||||||
// machineCodeLB
|
// machineCodeLB
|
||||||
|
|
@ -398,36 +398,36 @@
|
||||||
// label6
|
// label6
|
||||||
//
|
//
|
||||||
label6.AutoSize = true;
|
label6.AutoSize = true;
|
||||||
label6.Location = new Point(95, 94);
|
label6.Location = new Point(55, 94);
|
||||||
label6.Name = "label6";
|
label6.Name = "label6";
|
||||||
label6.Size = new Size(44, 17);
|
label6.Size = new Size(99, 17);
|
||||||
label6.TabIndex = 5;
|
label6.TabIndex = 5;
|
||||||
label6.Text = "激活码";
|
label6.Text = "Activation Code";
|
||||||
//
|
//
|
||||||
// label7
|
// label7
|
||||||
//
|
//
|
||||||
label7.AutoSize = true;
|
label7.AutoSize = true;
|
||||||
label7.Location = new Point(95, 44);
|
label7.Location = new Point(62, 44);
|
||||||
label7.Name = "label7";
|
label7.Name = "label7";
|
||||||
label7.Size = new Size(44, 17);
|
label7.Size = new Size(92, 17);
|
||||||
label7.TabIndex = 4;
|
label7.TabIndex = 4;
|
||||||
label7.Text = "机器码";
|
label7.Text = "Machine Code";
|
||||||
//
|
//
|
||||||
// groupBox4
|
// groupBox4
|
||||||
//
|
//
|
||||||
groupBox4.Controls.Add(logTBox);
|
groupBox4.Controls.Add(logTBox);
|
||||||
groupBox4.Location = new Point(570, 11);
|
groupBox4.Location = new Point(631, 11);
|
||||||
groupBox4.Name = "groupBox4";
|
groupBox4.Name = "groupBox4";
|
||||||
groupBox4.Size = new Size(391, 825);
|
groupBox4.Size = new Size(391, 924);
|
||||||
groupBox4.TabIndex = 4;
|
groupBox4.TabIndex = 4;
|
||||||
groupBox4.TabStop = false;
|
groupBox4.TabStop = false;
|
||||||
groupBox4.Text = "部署日志";
|
groupBox4.Text = "Deployment Log";
|
||||||
//
|
//
|
||||||
// logTBox
|
// logTBox
|
||||||
//
|
//
|
||||||
logTBox.Location = new Point(6, 22);
|
logTBox.Location = new Point(6, 22);
|
||||||
logTBox.Name = "logTBox";
|
logTBox.Name = "logTBox";
|
||||||
logTBox.Size = new Size(359, 797);
|
logTBox.Size = new Size(359, 899);
|
||||||
logTBox.TabIndex = 0;
|
logTBox.TabIndex = 0;
|
||||||
logTBox.Text = "";
|
logTBox.Text = "";
|
||||||
//
|
//
|
||||||
|
|
@ -435,14 +435,14 @@
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(7F, 17F);
|
AutoScaleDimensions = new SizeF(7F, 17F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(977, 944);
|
ClientSize = new Size(1034, 944);
|
||||||
Controls.Add(groupBox4);
|
Controls.Add(groupBox4);
|
||||||
Controls.Add(groupBox3);
|
Controls.Add(groupBox3);
|
||||||
Controls.Add(groupBox2);
|
Controls.Add(groupBox2);
|
||||||
Controls.Add(groupBox1);
|
Controls.Add(groupBox1);
|
||||||
Icon = (Icon)resources.GetObject("$this.Icon");
|
Icon = (Icon)resources.GetObject("$this.Icon");
|
||||||
Name = "Main";
|
Name = "Main";
|
||||||
Text = "安装 - EI Image Viewer V1";
|
Text = "Install - EI-Med Viewer V1";
|
||||||
TopMost = true;
|
TopMost = true;
|
||||||
Load += Main_Load;
|
Load += Main_Load;
|
||||||
groupBox1.ResumeLayout(false);
|
groupBox1.ResumeLayout(false);
|
||||||
|
|
|
||||||
145
Main.cs
145
Main.cs
|
|
@ -33,6 +33,7 @@ using System.Web;
|
||||||
|
|
||||||
namespace Start
|
namespace Start
|
||||||
{
|
{
|
||||||
|
|
||||||
public partial class Main : Form
|
public partial class Main : Form
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -77,7 +78,7 @@ namespace Start
|
||||||
connection.Open();
|
connection.Open();
|
||||||
});
|
});
|
||||||
|
|
||||||
WinformLog("数据库连接测试成功!", Color.Green);
|
WinformLog("Database connection test successful!", Color.Green);
|
||||||
|
|
||||||
isCanDBConfig = false;
|
isCanDBConfig = false;
|
||||||
serverTextBox.Enabled = isCanDBConfig;
|
serverTextBox.Enabled = isCanDBConfig;
|
||||||
|
|
@ -96,7 +97,7 @@ namespace Start
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
||||||
WinformLog($"数据库连接测试失败:{ex.Message}", Color.Red);
|
WinformLog($"Database connection test failed:{ex.Message}", Color.Red);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -114,26 +115,26 @@ namespace Start
|
||||||
|
|
||||||
if (int.TryParse(nginxPortTBox.Text, out vuePort) == false || int.TryParse(apiPortTBox.Text, out apiPort) == false)
|
if (int.TryParse(nginxPortTBox.Text, out vuePort) == false || int.TryParse(apiPortTBox.Text, out apiPort) == false)
|
||||||
{
|
{
|
||||||
WinformLog($"请输入合法的端口", Color.Red);
|
WinformLog($"Please enter a valid port", Color.Red);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsPortInUse(vuePort))
|
if (IsPortInUse(vuePort))
|
||||||
{
|
{
|
||||||
WinformLog($"服务设置的前端端口被占用,请选择其他端口", Color.Red);
|
WinformLog($"The front-end port set by the service is occupied, please choose another port", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (IsPortInUse(apiPort))
|
if (IsPortInUse(apiPort))
|
||||||
{
|
{
|
||||||
WinformLog($"服务设置的后端端口被占用,请选择其他端口", Color.Red);
|
WinformLog($"The back-end port set by the service is occupied, please choose another port", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WinformLog("端口测试成功!", Color.Green);
|
WinformLog("Port test successful!", Color.Green);
|
||||||
|
|
||||||
isPortTestOk = true;
|
isPortTestOk = true;
|
||||||
|
|
||||||
|
|
@ -147,24 +148,24 @@ namespace Start
|
||||||
{
|
{
|
||||||
if (ServiceController.GetServices().Any(t => t.ServiceName == serviceNameTBox.Text))
|
if (ServiceController.GetServices().Any(t => t.ServiceName == serviceNameTBox.Text))
|
||||||
{
|
{
|
||||||
WinformLog($"设置的后端服务名称已存在,请更换", Color.Red);
|
WinformLog($"The set backend service name already exists, please replace it", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ServiceController.GetServices().Any(t => t.ServiceName == nginxServiceNameTbox.Text))
|
if (ServiceController.GetServices().Any(t => t.ServiceName == nginxServiceNameTbox.Text))
|
||||||
{
|
{
|
||||||
WinformLog($"设置的nginx服务名称已存在,请更换", Color.Red);
|
WinformLog($"The nginx service name already exists. Please change it", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WinformLog($"测试服务名称成功", Color.Green);
|
WinformLog($"Service name test successful", Color.Green);
|
||||||
isServiceTestOk = true;
|
isServiceTestOk = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testNetcoreRuntime()
|
private void testNetcoreRuntime()
|
||||||
{
|
{
|
||||||
|
|
||||||
string runtimeListCommand = "dotnet --list-runtimes";
|
string runtimeListCommand = "dotnet --list-runtimes";
|
||||||
|
|
@ -215,7 +216,7 @@ namespace Start
|
||||||
{
|
{
|
||||||
// 执行逻辑,表示大于等于 6.0.0 的 .NET 运行时已安装
|
// 执行逻辑,表示大于等于 6.0.0 的 .NET 运行时已安装
|
||||||
|
|
||||||
WinformLog("当前系统>= 6.0.0 NetCore 运行时已安装", Color.Green);
|
WinformLog("Current system >= 6.0.0 NetCore runtime is installed", Color.Green);
|
||||||
|
|
||||||
isRuntimeTestOk = true;
|
isRuntimeTestOk = true;
|
||||||
|
|
||||||
|
|
@ -224,13 +225,13 @@ namespace Start
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
WinformLog("当前系统>= 6.0.0 NetCore 运行时未安装,请安装后,再运行该程序", Color.Red);
|
WinformLog("The current system >= 6.0.0 NetCore runtime is not installed, please install it before running the program", Color.Red);
|
||||||
|
|
||||||
connectButton.Enabled = false;
|
connectButton.Enabled = false;
|
||||||
|
|
||||||
//await Task.Run(() =>
|
//await Task.Run(() =>
|
||||||
// {
|
// {
|
||||||
// WinformLog("现在为您启动安装Net core 运行时...", Color.Orange);
|
// WinformLog("Now start installing the Net core runtime for you...", Color.Orange);
|
||||||
|
|
||||||
// string runtimePath = Path.Combine(AppContext.BaseDirectory, "Resource/NetCoreRuntime/dotnet-hosting-6.0.0-win.exe");
|
// string runtimePath = Path.Combine(AppContext.BaseDirectory, "Resource/NetCoreRuntime/dotnet-hosting-6.0.0-win.exe");
|
||||||
|
|
||||||
|
|
@ -246,7 +247,7 @@ namespace Start
|
||||||
// otherProcess.Start();
|
// otherProcess.Start();
|
||||||
// otherProcess.WaitForExit();
|
// otherProcess.WaitForExit();
|
||||||
|
|
||||||
// WinformLog("Net core 6.0.0 运行时安装完成", Color.Green);
|
// WinformLog("Net core 6.0.0 runtime installation completed", Color.Green);
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -258,7 +259,7 @@ namespace Start
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(dbNameTBox.Text))
|
if (string.IsNullOrWhiteSpace(dbNameTBox.Text))
|
||||||
{
|
{
|
||||||
WinformLog($"请输入部署的数据库名称", Color.Red);
|
WinformLog($"Please enter the deployed database name", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -280,14 +281,14 @@ namespace Start
|
||||||
if (rowCount > 0)
|
if (rowCount > 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
WinformLog($"{dbNameTBox.Text.Trim()}该数据库已存在。", Color.Red);
|
WinformLog($"{dbNameTBox.Text.Trim()}The database already exists.", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WinformLog($"数据库名称测试成功", Color.Green);
|
WinformLog($"Database name test successful", Color.Green);
|
||||||
isDBNameTestOK = true;
|
isDBNameTestOK = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -295,7 +296,7 @@ namespace Start
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void confimDeployBtn_Click(object sender, EventArgs e)
|
private void confimDeployBtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
portBtn_Click(null, null);
|
portBtn_Click(null, null);
|
||||||
|
|
@ -305,17 +306,17 @@ namespace Start
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(this.folderPathTbox.Text))
|
if (string.IsNullOrWhiteSpace(this.folderPathTbox.Text))
|
||||||
{
|
{
|
||||||
WinformLog($"请选择部署路径,测试的端口,数据库名,服务名都成功才可以进行确认", Color.Red);
|
WinformLog($"Confirmation can only be made after selecting the deployment path, test port, database name, and service name.", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (isDBNameTestOK == false || isPortTestOk == false || isServiceTestOk == false)
|
if (isDBNameTestOK == false || isPortTestOk == false || isServiceTestOk == false)
|
||||||
{
|
{
|
||||||
WinformLog($"测试的端口,数据库名,服务名都成功才可以进行确认", Color.Red);
|
WinformLog($"Confirmation can only be made after the test port, database name, and service name are all test successful.", Color.Red);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
WinformLog($"部署配置确认成功", Color.Green);
|
WinformLog($"Deployment configuration confirmed successfully", Color.Green);
|
||||||
|
|
||||||
activeBtn.Enabled = true;
|
activeBtn.Enabled = true;
|
||||||
|
|
||||||
|
|
@ -403,7 +404,7 @@ namespace Start
|
||||||
{
|
{
|
||||||
if (Md5($"{machineTextBox.Text}_XINGCANG") != KeySecreteTextBox.Text.Trim())
|
if (Md5($"{machineTextBox.Text}_XINGCANG") != KeySecreteTextBox.Text.Trim())
|
||||||
{
|
{
|
||||||
WinformLog($"秘钥不正确,请联系供应商", Color.Red);
|
WinformLog($"The secret key is incorrect, please contact the supplier", Color.Red);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -421,10 +422,10 @@ namespace Start
|
||||||
|
|
||||||
var deployFoder = this.folderPathTbox.Text;
|
var deployFoder = this.folderPathTbox.Text;
|
||||||
|
|
||||||
string nginxExtractName = "EIImageViewerWeb";
|
string nginxExtractName = "EIMedViewerWeb";
|
||||||
string apiExtractName = "EIImageViewerService";
|
string apiExtractName = "EIMedViewerService";
|
||||||
|
|
||||||
string dataExtraName = "EIImageViewerData";
|
string dataExtraName = "EIMedViewerData";
|
||||||
|
|
||||||
string nginxStartPath = Path.Combine(deployFoder, @$"{nginxExtractName}\");
|
string nginxStartPath = Path.Combine(deployFoder, @$"{nginxExtractName}\");
|
||||||
var nginxConfigPath = Path.Combine(nginxStartPath, @$"conf\nginx.conf");
|
var nginxConfigPath = Path.Combine(nginxStartPath, @$"conf\nginx.conf");
|
||||||
|
|
@ -434,14 +435,14 @@ namespace Start
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var apiBinPath = Path.Combine(deployFoder, "EIImageViewerService/EI_Image_Viewer.exe");
|
var apiBinPath = Path.Combine(deployFoder, "EIMedViewerService/EI_Med_Viewer.exe");
|
||||||
var apiJsonConfigPath = Path.Combine(deployFoder, "EIImageViewerService/appsettings.CertificateApply.json");
|
var apiJsonConfigPath = Path.Combine(deployFoder, "EIMedViewerService/appsettings.Test_510K.json");
|
||||||
|
|
||||||
string nginxRarFilePath = Path.Combine(AppContext.BaseDirectory, $@"Resource\EIImageViewerWeb.rar");
|
string nginxRarFilePath = Path.Combine(AppContext.BaseDirectory, $@"Resource\EIMedViewerWeb.rar");
|
||||||
string apiRarFilePath = Path.Combine(AppContext.BaseDirectory, "Resource/EIImageViewerService.rar");
|
string apiRarFilePath = Path.Combine(AppContext.BaseDirectory, "Resource/EIMedViewerService.rar");
|
||||||
|
|
||||||
|
|
||||||
string dataRarFilePath = Path.Combine(AppContext.BaseDirectory, "Resource/EIImageViewerData.rar");
|
string dataRarFilePath = Path.Combine(AppContext.BaseDirectory, "Resource/EIMedViewerData.rar");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -468,7 +469,7 @@ namespace Start
|
||||||
|
|
||||||
#region 解压nginx 和前端部署的文件
|
#region 解压nginx 和前端部署的文件
|
||||||
|
|
||||||
WinformLog($"开始解压 nginx 及前端部署压缩文件...", Color.Green);
|
WinformLog($"Start decompressing nginx and front-end deployment compressed files...", Color.Green);
|
||||||
|
|
||||||
string extractPath = Path.Combine(deployFoder, nginxExtractName);
|
string extractPath = Path.Combine(deployFoder, nginxExtractName);
|
||||||
if (!Directory.Exists(extractPath))
|
if (!Directory.Exists(extractPath))
|
||||||
|
|
@ -493,7 +494,7 @@ namespace Start
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WinformLog($"nginx 及前端部署压缩文件已成功解压缩到: {extractPath}", Color.Green);
|
WinformLog($"The nginx and front-end deployment compressed files have been successfully decompressed to: {extractPath}", Color.Green);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -503,10 +504,10 @@ namespace Start
|
||||||
|
|
||||||
if (!File.Exists(nginxConfigPath))
|
if (!File.Exists(nginxConfigPath))
|
||||||
{
|
{
|
||||||
WinformLog("预设路径不存在nginx", Color.Red);
|
WinformLog("No nginx exist under the default path", Color.Red);
|
||||||
}
|
}
|
||||||
|
|
||||||
WinformLog("准备写入nginx配置...", Color.Green);
|
WinformLog("Prepare to write nginx configuration...", Color.Green);
|
||||||
|
|
||||||
var nginxConfig = File.ReadAllText(nginxConfigPath);
|
var nginxConfig = File.ReadAllText(nginxConfigPath);
|
||||||
|
|
||||||
|
|
@ -515,12 +516,12 @@ namespace Start
|
||||||
|
|
||||||
File.WriteAllText(nginxConfigPath, nginxConfig);
|
File.WriteAllText(nginxConfigPath, nginxConfig);
|
||||||
|
|
||||||
WinformLog("nginx部署配置写入完成", Color.Green);
|
WinformLog("nginx deployment configuration writing completed", Color.Green);
|
||||||
|
|
||||||
|
|
||||||
#region nginxservice
|
#region nginxservice
|
||||||
|
|
||||||
WinformLog("准备nginx自启动服务配置文件...", Color.Green);
|
WinformLog("Prepare nginx self-starting service configuration file...", Color.Green);
|
||||||
|
|
||||||
var nginxServiceConfig = File.ReadAllText(nginxServiceXMLPath);
|
var nginxServiceConfig = File.ReadAllText(nginxServiceXMLPath);
|
||||||
|
|
||||||
|
|
@ -532,25 +533,25 @@ namespace Start
|
||||||
|
|
||||||
File.WriteAllText(nginxServiceXMLPath, nginxServiceConfig);
|
File.WriteAllText(nginxServiceXMLPath, nginxServiceConfig);
|
||||||
|
|
||||||
WinformLog("nginx自启动服务配置写入完成", Color.Green);
|
WinformLog("nginx self-starting service configuration writing completed", Color.Green);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WinformLog($"准备创建自启动nginx服务...", Color.Green);
|
WinformLog($"Prepare to create a self-starting nginx service...", Color.Green);
|
||||||
|
|
||||||
var nginxCreateStr = $@"{nginxServiceEXEPath} install ";
|
var nginxCreateStr = $@"{nginxServiceEXEPath} install ";
|
||||||
|
|
||||||
// 执行 sc create 命令来创建服务
|
// 执行 sc create 命令来创建服务
|
||||||
await ProcessStandardInputAsync(process, nginxCreateStr);
|
await ProcessStandardInputAsync(process, nginxCreateStr);
|
||||||
|
|
||||||
WinformLog($"服务{nginxServiceName}创建执行结束", Color.Green);
|
WinformLog($"The execution of creating service {nginxServiceName} ends", Color.Green);
|
||||||
|
|
||||||
await Task.Delay(2000);
|
await Task.Delay(2000);
|
||||||
|
|
||||||
#region nginx 服务
|
#region nginx 服务
|
||||||
WinformLog($"启动部署的{nginxServiceName}服务...", Color.Green);
|
WinformLog($"Start the deployed {nginxServiceName} service...", Color.Green);
|
||||||
|
|
||||||
await ProcessStandardInputAsync(process, $"sc start {nginxServiceName}");
|
await ProcessStandardInputAsync(process, $"sc start {nginxServiceName}");
|
||||||
|
|
||||||
|
|
@ -569,11 +570,11 @@ namespace Start
|
||||||
|
|
||||||
if (scNginx.Status == ServiceControllerStatus.Running)
|
if (scNginx.Status == ServiceControllerStatus.Running)
|
||||||
{
|
{
|
||||||
WinformLog($"nginx服务启动成功", Color.Green);
|
WinformLog($"nginx service started successfully", Color.Green);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WinformLog($"nginx服务启动失败", Color.Red);
|
WinformLog($"nginx service failed to start", Color.Red);
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -585,7 +586,7 @@ namespace Start
|
||||||
//// 指定工作目录,即进入nginx.exe所在的目录
|
//// 指定工作目录,即进入nginx.exe所在的目录
|
||||||
//psi.WorkingDirectory = nginxStartPath;
|
//psi.WorkingDirectory = nginxStartPath;
|
||||||
|
|
||||||
//WinformLog(" 开始启动 nginx 服务...", Color.Green);
|
//WinformLog(" Start nginx service...", Color.Green);
|
||||||
//// 启动可执行文件
|
//// 启动可执行文件
|
||||||
//Process.Start(psi);
|
//Process.Start(psi);
|
||||||
|
|
||||||
|
|
@ -594,11 +595,11 @@ namespace Start
|
||||||
|
|
||||||
//if (Process.GetProcesses().Any(t => t.ProcessName.Contains("nginx") && t.MainModule.FileName.Contains(nginxStartPath)))
|
//if (Process.GetProcesses().Any(t => t.ProcessName.Contains("nginx") && t.MainModule.FileName.Contains(nginxStartPath)))
|
||||||
//{
|
//{
|
||||||
// WinformLog(" nginx 服务启动成功", Color.Green);
|
// WinformLog(" nginx service started successfully", Color.Green);
|
||||||
//}
|
//}
|
||||||
//else
|
//else
|
||||||
//{
|
//{
|
||||||
// WinformLog(" nginx 服务启动失败", Color.Red);
|
// WinformLog(" nginx service failed to start", Color.Red);
|
||||||
// return;
|
// return;
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
|
@ -615,7 +616,7 @@ namespace Start
|
||||||
{
|
{
|
||||||
#region 解压后端部署的文件
|
#region 解压后端部署的文件
|
||||||
|
|
||||||
WinformLog($"开始解压后端部署压缩文件...", Color.Green);
|
WinformLog($"Start decompressing the backend deployment compressed file...", Color.Green);
|
||||||
|
|
||||||
string apiExtractPath = Path.Combine(deployFoder, apiExtractName);
|
string apiExtractPath = Path.Combine(deployFoder, apiExtractName);
|
||||||
|
|
||||||
|
|
@ -642,7 +643,7 @@ namespace Start
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WinformLog($"后端部署压缩文件已成功解压缩到: {apiExtractPath}", Color.Green);
|
WinformLog($"The backend deployment compressed file was successfully extracted to: {apiExtractPath}", Color.Green);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
});
|
});
|
||||||
|
|
@ -650,7 +651,7 @@ namespace Start
|
||||||
await Task.Run(() =>
|
await Task.Run(() =>
|
||||||
{
|
{
|
||||||
#region 解压模板文件
|
#region 解压模板文件
|
||||||
WinformLog($"开始解压部署依赖模板压缩文件...", Color.Green);
|
WinformLog($"Start decompressing the deployment dependency template compressed file...", Color.Green);
|
||||||
string extractPath = Path.Combine(deployFoder, dataExtraName);
|
string extractPath = Path.Combine(deployFoder, dataExtraName);
|
||||||
|
|
||||||
if (!Directory.Exists(extractPath))
|
if (!Directory.Exists(extractPath))
|
||||||
|
|
@ -671,7 +672,7 @@ namespace Start
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WinformLog($"依赖模板压缩文件已成功解压缩到: {extractPath}", Color.Green);
|
WinformLog($"The dependency template compressed file was successfully extracted to: {extractPath}", Color.Green);
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -704,7 +705,7 @@ namespace Start
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WinformLog($"文档资源释放成功", Color.Green);
|
WinformLog($"Document resources released successfully", Color.Green);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
});
|
});
|
||||||
|
|
@ -744,11 +745,11 @@ namespace Start
|
||||||
|
|
||||||
File.WriteAllText(Path.Combine(directoryPath, "config.json"), JsonConvert.SerializeObject(configObj));
|
File.WriteAllText(Path.Combine(directoryPath, "config.json"), JsonConvert.SerializeObject(configObj));
|
||||||
|
|
||||||
WinformLog("写入激活秘钥完成", Color.Green);
|
WinformLog("Writing the activation key is completed", Color.Green);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
WinformLog("写入激活秘钥失败,请用管理员方式启动该程序,保证程序可以", Color.Red);
|
WinformLog("Failed to write the activation key. Please start the program in administrator mode to ensure that the program has sufficient permissions.", Color.Red);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -764,16 +765,16 @@ namespace Start
|
||||||
|
|
||||||
#region 创建服务
|
#region 创建服务
|
||||||
|
|
||||||
WinformLog($"开始创建服务{serviceName}...", Color.Green);
|
WinformLog($"Start creating a service {serviceName}...", Color.Green);
|
||||||
|
|
||||||
var createTestStr = $"sc create {serviceName} binPath= \"{apiBinPath} --urls=\"http://127.0.0.1:{apiPort}\" --env CertificateApply\" DisplayName= \"{serviceDisplayName}\" start= auto";
|
var createTestStr = $"sc create {serviceName} binPath= \"{apiBinPath} --urls=\"http://*:{apiPort}\" --env Test_510K\" DisplayName= \"{serviceDisplayName}\" start= auto";
|
||||||
|
|
||||||
var createStr = $@"sc create {serviceName} binPath= ""{apiBinPath} --urls=""http://127.0.0.1:{apiPort}"" --env CertificateApply"" DisplayName= ""{serviceDisplayName}"" start= auto";
|
var createStr = $@"sc create {serviceName} binPath= ""{apiBinPath} --urls=""http://*:{apiPort}"" --env Test_510K"" DisplayName= ""{serviceDisplayName}"" start= auto";
|
||||||
|
|
||||||
// 执行 sc create 命令来创建服务
|
// 执行 sc create 命令来创建服务
|
||||||
await ProcessStandardInputAsync(process, createStr);
|
await ProcessStandardInputAsync(process, createStr);
|
||||||
|
|
||||||
WinformLog($"服务{serviceName}创建执行结束", Color.Green);
|
WinformLog($"The execution of creating service{serviceName}ends", Color.Green);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
@ -782,7 +783,7 @@ namespace Start
|
||||||
|
|
||||||
#region 初始化数据库脚本
|
#region 初始化数据库脚本
|
||||||
|
|
||||||
WinformLog($"执行初始化数据库脚本...", Color.Green);
|
WinformLog($"Execute initialization database script...", Color.Green);
|
||||||
//执行数据库脚本
|
//执行数据库脚本
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -793,14 +794,14 @@ namespace Start
|
||||||
await ProcessStandardInputAsync(process, $@" SQLCMD -v dbName = ""{dbNameTBox.Text}"" -i ""{AppContext.BaseDirectory}Resource\Data\data.sql"" ");
|
await ProcessStandardInputAsync(process, $@" SQLCMD -v dbName = ""{dbNameTBox.Text}"" -i ""{AppContext.BaseDirectory}Resource\Data\data.sql"" ");
|
||||||
|
|
||||||
|
|
||||||
WinformLog($"初始化数据库脚本执行结束", Color.Green);
|
WinformLog($"The execution of the initialization database script ends", Color.Green);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
#region 部署网站配置文件写入
|
#region 部署网站配置文件写入
|
||||||
|
|
||||||
WinformLog("开始写入部署网站服务配置文件...", Color.Green);
|
WinformLog("Start writing the deployment website service configuration file...", Color.Green);
|
||||||
|
|
||||||
var appsettingsJson = File.ReadAllText(apiJsonConfigPath);
|
var appsettingsJson = File.ReadAllText(apiJsonConfigPath);
|
||||||
|
|
||||||
|
|
@ -828,13 +829,13 @@ namespace Start
|
||||||
catch (SqlException ex)
|
catch (SqlException ex)
|
||||||
{
|
{
|
||||||
|
|
||||||
WinformLog($"连接字符串错误", Color.Red);
|
WinformLog($"Connection string error", Color.Red);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WinformLog("部署网站服务配置文件写入并测试OK", Color.Green);
|
WinformLog("Deploy the website service configuration file, write and test OK", Color.Green);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
@ -851,7 +852,7 @@ namespace Start
|
||||||
|
|
||||||
#region 启动后端服务
|
#region 启动后端服务
|
||||||
|
|
||||||
WinformLog($"启动部署的后端服务...", Color.Green);
|
WinformLog($"Start the deployed backend service...", Color.Green);
|
||||||
|
|
||||||
await ProcessStandardInputAsync(process, $"sc start {serviceName}");
|
await ProcessStandardInputAsync(process, $"sc start {serviceName}");
|
||||||
|
|
||||||
|
|
@ -877,14 +878,14 @@ namespace Start
|
||||||
|
|
||||||
if (sc.Status == ServiceControllerStatus.Running)
|
if (sc.Status == ServiceControllerStatus.Running)
|
||||||
{
|
{
|
||||||
WinformLog($"后端服务启动成功", Color.Green);
|
WinformLog($"Backend service started successfully", Color.Green);
|
||||||
|
|
||||||
|
|
||||||
WinformLog($"部署工作已完成", Color.Green);
|
WinformLog($"Deployment completed", Color.Green);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
WinformLog($"现在准备打开浏览器...", Color.Green);
|
WinformLog($"Now ready to open the browser...", Color.Green);
|
||||||
|
|
||||||
await Task.Delay(2000);
|
await Task.Delay(2000);
|
||||||
// Use ProcessStartInfo class
|
// Use ProcessStartInfo class
|
||||||
|
|
@ -893,7 +894,7 @@ namespace Start
|
||||||
UseShellExecute = true,
|
UseShellExecute = true,
|
||||||
Verb = "open"
|
Verb = "open"
|
||||||
};
|
};
|
||||||
var urlProcess= Process.Start(start);
|
var urlProcess = Process.Start(start);
|
||||||
|
|
||||||
urlProcess.WaitForExit(); // 等待进程结束
|
urlProcess.WaitForExit(); // 等待进程结束
|
||||||
}
|
}
|
||||||
|
|
@ -905,7 +906,7 @@ namespace Start
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WinformLog($"后端服务启动失败,您可手动启动{serviceDisplayName}尝试,如若手动尝试还是无法启动,请联系技术人员确认部署环境", Color.Red);
|
WinformLog($"The backend service failed to start. You can try to start {serviceDisplayName}manually. If you still cannot start after trying manually, please contact technical personnel to confirm the deployment environment.", Color.Red);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
@ -929,7 +930,7 @@ namespace Start
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void selectPathBtn_Click(object sender, EventArgs e)
|
private void selectPathBtn_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
FolderBrowserDialog dialog = new FolderBrowserDialog();
|
FolderBrowserDialog dialog = new FolderBrowserDialog();
|
||||||
if (dialog.ShowDialog() == DialogResult.OK)
|
if (dialog.ShowDialog() == DialogResult.OK)
|
||||||
|
|
@ -938,7 +939,7 @@ namespace Start
|
||||||
|
|
||||||
confimDeployBtn.Enabled = true;
|
confimDeployBtn.Enabled = true;
|
||||||
|
|
||||||
WinformLog($"部署路径选择成功", Color.Green);
|
WinformLog($"Deployment path selected successfully", Color.Green);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -948,7 +949,7 @@ namespace Start
|
||||||
{
|
{
|
||||||
Clipboard.SetText(machineTextBox.Text);
|
Clipboard.SetText(machineTextBox.Text);
|
||||||
|
|
||||||
WinformLog("机器码拷贝到剪切板成功!", Color.Green);
|
WinformLog("The machine code was copied to the clipboard successfully!", Color.Green);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Main_Load(object sender, EventArgs e)
|
private void Main_Load(object sender, EventArgs e)
|
||||||
|
|
@ -980,13 +981,13 @@ namespace Start
|
||||||
{
|
{
|
||||||
foreach (var instanceName in key.GetValueNames())
|
foreach (var instanceName in key.GetValueNames())
|
||||||
{
|
{
|
||||||
WinformLog($"当前系统SQL Server 已安装实例: {instanceName}", Color.Green);
|
WinformLog($"The current system SQL Server installed instance: {instanceName}", Color.Green);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
WinformLog("SQL Server 未安装,请安装后再运行该部署程序", Color.Red);
|
WinformLog("SQL Server is not installed, please install it before running the deployment program.", Color.Red);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
62
Main.resx
62
Main.resx
|
|
@ -1,4 +1,64 @@
|
||||||
<root>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
namespace EI_Image_Viewer_Activation
|
||||||
|
{
|
||||||
|
partial class Main
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
|
||||||
|
label1 = new Label();
|
||||||
|
label2 = new Label();
|
||||||
|
codeTBox = new TextBox();
|
||||||
|
activeSecreteTbox = new TextBox();
|
||||||
|
btnCopy = new Button();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
label1.AutoSize = true;
|
||||||
|
label1.Font = new Font("Microsoft YaHei UI", 15F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
label1.Location = new Point(54, 69);
|
||||||
|
label1.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
label1.Name = "label1";
|
||||||
|
label1.Size = new Size(72, 27);
|
||||||
|
label1.TabIndex = 0;
|
||||||
|
label1.Text = "机器码";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
label2.AutoSize = true;
|
||||||
|
label2.Font = new Font("Microsoft YaHei UI", 15F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
label2.Location = new Point(54, 183);
|
||||||
|
label2.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
label2.Name = "label2";
|
||||||
|
label2.Size = new Size(72, 27);
|
||||||
|
label2.TabIndex = 1;
|
||||||
|
label2.Text = "激活码";
|
||||||
|
//
|
||||||
|
// codeTBox
|
||||||
|
//
|
||||||
|
codeTBox.Font = new Font("Microsoft YaHei UI", 15F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
codeTBox.Location = new Point(168, 69);
|
||||||
|
codeTBox.Margin = new Padding(4);
|
||||||
|
codeTBox.Name = "codeTBox";
|
||||||
|
codeTBox.Size = new Size(424, 33);
|
||||||
|
codeTBox.TabIndex = 2;
|
||||||
|
codeTBox.TextChanged += codeTBox_TextChanged;
|
||||||
|
//
|
||||||
|
// activeSecreteTbox
|
||||||
|
//
|
||||||
|
activeSecreteTbox.Enabled = false;
|
||||||
|
activeSecreteTbox.Font = new Font("Microsoft YaHei UI", 15F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
activeSecreteTbox.Location = new Point(168, 183);
|
||||||
|
activeSecreteTbox.Margin = new Padding(4);
|
||||||
|
activeSecreteTbox.Name = "activeSecreteTbox";
|
||||||
|
activeSecreteTbox.Size = new Size(424, 33);
|
||||||
|
activeSecreteTbox.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// btnCopy
|
||||||
|
//
|
||||||
|
btnCopy.Font = new Font("Microsoft YaHei UI", 15F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
btnCopy.Location = new Point(619, 178);
|
||||||
|
btnCopy.Margin = new Padding(4);
|
||||||
|
btnCopy.Name = "btnCopy";
|
||||||
|
btnCopy.Size = new Size(144, 41);
|
||||||
|
btnCopy.TabIndex = 4;
|
||||||
|
btnCopy.Text = "拷贝";
|
||||||
|
btnCopy.UseVisualStyleBackColor = true;
|
||||||
|
btnCopy.Click += btnCopy_Click;
|
||||||
|
//
|
||||||
|
// Main
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(10F, 21F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
|
ClientSize = new Size(818, 498);
|
||||||
|
Controls.Add(btnCopy);
|
||||||
|
Controls.Add(activeSecreteTbox);
|
||||||
|
Controls.Add(codeTBox);
|
||||||
|
Controls.Add(label2);
|
||||||
|
Controls.Add(label1);
|
||||||
|
Font = new Font("Microsoft YaHei UI", 12F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
Icon = (Icon)resources.GetObject("$this.Icon");
|
||||||
|
Margin = new Padding(4);
|
||||||
|
Name = "Main";
|
||||||
|
Text = "EI_Image_viewer Activation";
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private Label label1;
|
||||||
|
private Label label2;
|
||||||
|
private TextBox codeTBox;
|
||||||
|
private TextBox activeSecreteTbox;
|
||||||
|
private Button btnCopy;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Data;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Cryptography;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace EI_Image_Viewer_Activation
|
||||||
|
{
|
||||||
|
public partial class Main : Form
|
||||||
|
{
|
||||||
|
public Main()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void btnCopy_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Clipboard.SetText(activeSecreteTbox.Text);
|
||||||
|
|
||||||
|
MessageBox.Show("拷贝成功!");
|
||||||
|
}
|
||||||
|
|
||||||
|
private void codeTBox_TextChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.activeSecreteTbox.Text = Md5($"{this.codeTBox.Text.Trim()}_XINGCANG");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string Md5(string target)
|
||||||
|
{
|
||||||
|
using (MD5 md5 = MD5.Create())
|
||||||
|
{ // MD5非线程安全
|
||||||
|
byte[] bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(target));
|
||||||
|
StringBuilder sb = new StringBuilder(32);
|
||||||
|
for (int i = 0; i < bytes.Length; ++i)
|
||||||
|
sb.Append(bytes[i].ToString("x2"));
|
||||||
|
return sb.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,348 @@
|
||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAABMLAAATCwAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVaoDdW+EYnVvhGJVVaoDAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1bYU/dW6Dz3Ru
|
||||||
|
g/J0boPydW6Dz3VthT8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZt
|
||||||
|
fxx0b4SidG6E/XRvhKJ0an8YcnJ/FHVug5F1b4P8dG+Es3NsgyEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAf2Z/CnVvg4B1boP2dW+EynRvhjkAAAAAAAAAAAAAAAAAAAAAdXCEMnRvhMN0boT5dW6DkXV1
|
||||||
|
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
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNugjN1boPEdW6D9nRug4h1dYkNAAAAAAAAAADw4vAS8ubrkfHm
|
||||||
|
6vvx5ur98ufqovPn5xYAAAAAAAAAAH9mfwp1b4R3dG+E83Rug8t2bYM6AAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AXVvhFV1b4TgdW6D5HRv
|
||||||
|
hF4AAP8BAAAAAAAAAADy5uwp8ubsKQAAAAAAAAAAAAAAAHNwhE10boPfdG+E5XVuhGZ/f38CAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAf2Z/CnVvg4B1boP2dW+EynRvhjkAAAAAAAAAAAAAAAAAAAAAdXCEMnRug8J0boT5dW6DkXV1
|
||||||
|
iQ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdm1/HHRvhKJ0boT9dG+EonRqfxhycn8UdW6DkXVv
|
||||||
|
g/x0b4Szc2yDIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdW2FP3Vu
|
||||||
|
g890boPydG6D8nVug891bYU/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAABVVaoDdW+EYnVvhGJVVaoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAA/////////////////////////////////////////////////////////////////////D//
|
||||||
|
///////4H////////+AH////////g8H///////4GcH///////BgYP//////wYAYP/////8HBg4P/////
|
||||||
|
gwfgwf////4MH/gwf///+DB//gwf///g4P//Bwf//8GD///Bg///hg4AAHBh//+MHgAAeBH//4h+AAB+
|
||||||
|
Ef//if5//n+R//+J/n/+f5H//4n+fn5/kf//if5+fn+R//+J/n5+f5H//4n+fn5/kf//if58Pn+R//+J
|
||||||
|
/ngef5H//4n+eB5/kf//if55nn+R//+J/ngef5H//4n+fD5/kf//if5//n+R//+J/n/+f5H//4n+f/5/
|
||||||
|
kf//if4AAH+R//+J/gAAf5H//4n/z/P/kf//if/P8/+R//+J/8/z/5H//4h/z/P+Ef//jB/H4/gR//+G
|
||||||
|
D8PD8GH//8GD4AfBg///4ODwDwcH///4MH5+DB////4MH/gwf////4MH4MH/////wcGDg//////wYAYP
|
||||||
|
//////wYGD///////gZwf///////g8H////////gB/////////gf/////////D//////////////////
|
||||||
|
//////////////////////////////////////////////////8=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
namespace EI_Image_Viewer_Activation
|
||||||
|
{
|
||||||
|
internal static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The main entry point for the application.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
// To customize application configuration such as set high DPI settings or default font,
|
||||||
|
// see https://aka.ms/applicationconfiguration.
|
||||||
|
ApplicationConfiguration.Initialize();
|
||||||
|
Application.Run(new Main());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue