添加缓存配置目录
- 添加
Nuget.config
文件到C:\Program Files (x86)\NuGet\Config
目录下 - 将下方代码添加到
Nuget.config
文件中
1 |
|
Nuget原始缓存目录:
C:\Users\***\.nuget\packages\
查看本地Nuget缓存目录信息
- 查看nuget配置目录:
dotnet nuget locals all -l
Nuget.config
文件到C:\Program Files (x86)\NuGet\Config
目录下Nuget.config
文件中1 |
|
Nuget原始缓存目录:
C:\Users\***\.nuget\packages\
dotnet nuget locals all -l
安装包制作工具
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment
下列代码将VC_redist
的x86安装包添加到安装包中,若需要其他安装包,请至 https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads 下载。
2015-2019版本见:https://visualstudio.microsoft.com/zh-hans/downloads/ 中的其他工具和框架
1 |
|
[Code]
段添加Visual C++环境检查代码versionBuild
值的来源,见下载的VC_redist.x86.exe
文件的属性-详细信息-产品版本的第三级版本号1 |
|
Visual C++ 2019
的32位x86版本是否安装【2015-2019现在是共享相同的可再发行软件文件】1 |
|
解:奇葩史
在开发dotNet应用时,常常需要保证用户环境已经安装
.NET Framework
,下面将介绍如何在Inno Setup脚本中添加.NET Framework
检查并安装。
下列代码将.net framework 4.7.2
的Web安装包添加到安装包中,若需要离线安装包,请至 https://dotnet.microsoft.com/ 下载离线包。
1 |
|
[Code]
段添加.Net framework环境检查代码versionRelease
值的来源,见如何:确定已安装的 .NET Framework 版本1 |
|
.Net Framework 4.7.2
是否安装1 |
|
解:奇葩史
[Code]
段Inno Setup 要实现安装包升级检测,需要编写检测代码,其语法是Pascal【看的懂伪代码及C语言的,看起来不会太难】。
首先添加Code段基础代码,inno setup中代码首先会执行InitializeSetup()
,所以我们会在此方法的基础上做升级检测。
1 |
|
安装包通过AppId和AppVersion来找到对应的应用信息。
1 |
|
注意检测代码添加至
InitializeSetup
函数之前
1 |
|
1 |
|
安装过程中检测旧版本应用是否开启,若开启,则自动关闭,然后继续安装流程。
1 |
|
掘:奇葩史
ChineseSimplified.isl
Inno Setup中文支持并非官方翻译,所以在官方安装包中并未包含中文资源。
ChineseSimplified.isl
文件至Languages
目录将ChineseSimplified.isl
文件拷贝至Inno Setup软件安装目录下的Languages
目录内。
添加如下代码至.isl
脚本中:
1 |
|
完成后编译即可,此时软件安装界面上显示的就是中文了。
1 |
|
掘:奇葩史
鉴于VSCode都用inno setup打包了,个人就学习一下用inno做安装包的简易操作
SimplestSetup.iss
.iss
文件中:1 |
|
Inno Setup Compiler
打开.iss
文件,若安装时,关联了.iss
文件,可以直接双击打开HelloWorldSetup.exe
安装包将生成到用户文档目录下的Inno Setup Examples Output目录中[Icons]
:https://gitee.com/huaxia283611/WiXToolsetDoc/tree/master/samples/Jess.Sample.InnoSetup/ShortcutSetup.iss1 |
|
[Components & Types]
:https://gitee.com/huaxia283611/WiXToolsetDoc/tree/master/samples/Jess.Sample.InnoSetup/OptionSetup.iss1 |
|
cmd命令行:
1 |
|
powershell脚本[SimplestSetup.ps1]
:
1 |
|
掘:奇葩史
本文针对Wix制作**中文安装包(.msi)**中的一些内容进行整理 —— 其他语言类似
本文采用Visual Studio构建安装包 —— 推荐,因为足够方便。
示例源码
Cultures
属性zh-CN
添加到项目的Cultures
属性中【可以添加多种语言支持,以分号 ;
分隔】。
.wixproj
项目文件内容,添加如下代码:1 |
|
WixUIExtension.dll
引用Wix安装包中基本流程的本地化资源已经打包至WixUIExtension.dll
,引用此文件,即可在安装流程中显示中文流程。
见官方代码:https://github.com/wixtoolset/wix3/blob/master/src/ext/UIExtension/wixlib/WixUI_zh-CN.wxl
Product
的Language
属性此值设置与否,并不影响中文安装包打包,不过既然做中文包,就做的彻底一些。
Product
的Language
的默认值为1033
,其为en-us
的LCID,将其值改为2052
,即zh-cn
。
1 |
|
Package
的SummaryCodepage
属性MSI属性 详细信息显示中文
将Package
的SummaryCodepage
属性设置为936
;
1 |
|
设置此属性的作用,是让MSI安装包的属性-详细信息显示中文。
如下图,若不配置SummaryCodepage
,作者信息显示不了中文:
当未配置SummaryCodepage
时,作者信息显示 Test,而非 Test中文。
在WPF应用设计中,常常需要在主窗口之前设置一个前置登录窗口,为此整理了一下可行的方案。
示例源码:Jess.Sample.LoginWindow
Program.cs
,模仿Winform初始代码不做整理,个人不推荐,既然用了WPF,就尽量不把Winform的东西引入进来。
此方案相对局限,若单纯只有个登录操作,可以使用此法 —— 可依据需要调整
InitializeComponent();
的先后顺序。
1 |
|
Application
的OnStartup
方法注意事项:
- 在
OnStartup
中关闭窗体,会导致进入不了主窗体,因此需要手动控制ShutdownMode
【默认值:ShutdownMode.OnLastWindowClose
】- 不得在
App
构造函数中,进行UI显示操作,因为这会导致一些锁的释放,引发OnStartup
提前触发【OnStartup
是在Application
的构造函数中异步调用的】
官方Window.cs
源码的窗体关闭流程中有一段以下代码:
1 |
|
由此可见,默认情况下,在OnStartup
中调用关闭窗体,会直接导致Shutdown
的调用。
鉴于此,主要有以下修改方式【只要避免内部调用Shutdown
即可】:
保证登录窗体关闭时,不会满足
Shutdown
调用条件
Shutdown
:使用ShutdownMode.OnExplicitShutdown
,在需要退出应用时,调用App.Current.Shutdown()
;ShutdownMode
:登录前改为ShutdownMode.OnExplicitShutdown
,窗体关闭后,恢复为ShutdownMode.OnLastWindowClose
;MainWindow
,手动启动MainWindow
,不在依赖StartupUri
。Shutdown
App.Current.Shutdown()
。1 |
|
1 |
|
ShutdownMode
ShutdownMode
即可:1 |
|
MainWindow
App.xaml
文件中是StartupUri
属性设置。1 |
|
在上面前两种的OnStartup
的处理中,有个隐藏的问题,他们仍然会去创建MainWindow
。如果想避免初始化MainWindow
,有以下两种方式:
Shutdown
之后调用Environment.Exit(0);
,强制退出。Application
的OnNavigating
方法,设置事件参数的Cancel
属性。1 |
|
掘:奇葩史