男人
男人想吃烧鸡,但有些犹豫。
一只烧鸡要66块钱,想吃倒也买得起。
只是如果是媳妇想吃,或者是孩子想吃,就不犹豫买一只,男人顺便尝一点就可以。
但如果是自己想吃,就有点贵了。
男人想吃烧鸡,但有些犹豫。
一只烧鸡要66块钱,想吃倒也买得起。
只是如果是媳妇想吃,或者是孩子想吃,就不犹豫买一只,男人顺便尝一点就可以。
但如果是自己想吃,就有点贵了。
[Code]
// 检查 .NET Framework 4.8
function IsNetFramework48Installed(): Boolean;
var
RegKey: String;
Release: Cardinal;
begin
Result := False;
RegKey := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full';
if RegKeyExists(HKLM, RegKey) then
begin
if RegQueryDWordValue(HKLM, RegKey, 'Release', Release) then
begin
// Release >= 528040 表示已安装 .NET Framework 4.8
Result := Release >= 528040;
end;
end;
end;
// 检查 WebView2 Runtime
function IsWebView2Installed(): Boolean;
var
RegKey: String;
begin
Result := False;
// 检查 32 位注册表
RegKey := 'SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}';
if RegKeyExists(HKLM, RegKey) then
begin
Result := True;
Exit;
end;
// 检查 64 位注册表
RegKey := 'SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}';
if RegKeyExists(HKLM, RegKey) then
begin
Result := True;
end;
end;
// 检查 VC++ Runtime
function IsVCRedistInstalled(): Boolean;
var
RegKey: String;
begin
Result := False;
// 检查最新版本的 VC++ Runtime (14.0)
RegKey := 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64';
if RegKeyExists(HKLM, RegKey) then
begin
Result := True;
Exit;
end;
// 32位系统检查
RegKey := 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86';
if RegKeyExists(HKLM, RegKey) then
begin
Result := True;
end;
end;
// 在安装前检查所有依赖
function InitializeSetup(): Boolean;
var
ErrorMsg: String;
MissingDependencies: Boolean;
begin
Result := True;
MissingDependencies := False;
ErrorMsg := '请安装以下缺失的组件:' + #13#10#13#10;
if not IsNetFramework48Installed() then
begin
ErrorMsg := ErrorMsg + '- .NET Framework 4.8' + #13#10;
MissingDependencies := True;
end;
if not IsWebView2Installed() then
begin
ErrorMsg := ErrorMsg + '- WebView2 Runtime' + #13#10;
MissingDependencies := True;
end;
if not IsVCRedistInstalled() then
begin
ErrorMsg := ErrorMsg + '- Visual C++ Runtime' + #13#10;
MissingDependencies := True;
end;
if MissingDependencies then
begin
ErrorMsg := ErrorMsg + #13#10 + '是否继续安装?';
if MsgBox(ErrorMsg, mbConfirmation, MB_YESNO) = IDNO then
begin
Result := False;
end;
end;
end;
由于最近手里的项目需要加密,每次编译生成后,都需要来回切换好几个工具进行处理,烦不胜烦,最开始在vs中增加了生成事件命令来处理,也是繁琐,干脆就花了点时间写个通用工具来处理了,简单来说,这个软件只是个套壳,本质上是调用其他软件命令来实现的,做了个集成而已,方便使用。
通过调用ILMerge进行程序合并,可以将多个dll合并到主程序中。
通过调用ConfuserEx进行主程序加密(如果进行了合并操作,则加密合并后的主程序),默认加密没有使用任何参数,如果需要进行配置的话,参考ConfuserEx的说明文档,并修改工程加密模板文件即可。
通过调用Inno Setup进行主程序打包,如果需要进行配置的话,参考Inno Setup的说明文档,并修改工程打包模板文件即可。
默认情况下,打包时会自动忽略需要合并的DLL库文件以及备份文件。
备份!备份!备份! 虽然说只有合并和加密的时候对原文件进行了处理,并且处理前进行了备份,但是,还是强烈建议你提前对需要处理的软件项目进行备份,以免出现什么稀奇古怪的以外。
https://github.com/hmilyld/ProjectEnc
之前C#中集成浏览器用的是CefSharp,但是后来发现生成后的包太大了,搜了下发现微软Edge WebView2也完全满足需求,遂准备替换,替换过程也很顺利,Win10下直接通过Nuget安装依赖就可以了,结果Win7下无法运行,记录下解决过程。
Edge在109大版本号后就不支持Win7了,所以对应的WebView2的Runtime也停留在了109这个版本,如果在win7下使用,则edge及webview2 runtime版本不能超过109,并且两者版本号要一致。
首先去微软官网去找的,结果109版本安装不上,提示未知安装错误后就什么都没了,没办法去网络上找了一圈,还真找到了,文章地址:https://www.0z.gs/memo/2351.html,通过文章里面的地址下载即可。
自解压文件解压后,首先运行exe文件,安装edge,安装完成后,运行bat文件安装WebView2 Runtime,安装完成后,打开控制面板检查是否存在edge和runtime两个程序即可。
搞定。
今天在一个全新的Win7下安装Net Framework 4.8的时候出现了一个问题,
错误提示:
已处理证书链,但是在不受信任提供程序信任的根证书中终止
搜了些资料发现需要安装一个补丁,记录一下。
安装Windows6.1-KB2813430补丁
32位系统补丁下载地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=3911064位系统补丁下载地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=39115
据说从4.6版本到4.8都可以,没具体尝试,4.8下可以解决。