首页 > 编程语言 >c#之NSIS制作安装包

c#之NSIS制作安装包

时间:2023-09-12 15:24:47浏览次数:51  
标签:MUI c# 安装包 NSIS 7.0 卸载 PC8824 安装

1:如果想制作的安装包可以支持多语言,安装界面的多语言,可以在nsis脚本语言里面加入

Unicode True

这样的话,在安装包安装的时候就可以选择语言

 

2:运行时无法卸载,有的时候用户会在程序运行期间会对软件进行一个卸载,这个时候我们可以在nsis脚本

中加入以上代码,可防止用户在运行时去卸载程序。

//在un.oninit函数中进行函数的调用
Function un.onInit
!insertmacro FindProcess

//运行时无法卸载

!macro FindProcess
StrCpy $1 "PC8824.exe"
nsProcess::_FindProcess "$1"
Pop $R0
${If} $R0 = 0
MessageBox MB_OK|MB_ICONSTOP "程序檢測到 PC8824 正在運行,請關閉PC8824重新開始!" IDOK
Abort
${EndIf}
!macroend

 

3:静默安装

在有点时候,我们的App可能会依赖一些其他的环境,一些运行时或者第三方App,这个

时候我们就可以将这些工具集成在我们的app中,在我们的app安装过程中,我们会去

检查电脑上是否有我们需要的这个环境,如果没有,我们将会在后台静默安装,这个时候

我们的App就可以拥有这个环境成功运行了

//在安装的时候进行一个函数的调用

Call CheckDotNetFramework

//静默安装,检查,dotnet框架 

Function CheckDotNetFramework
;MessageBox MB_OK "未安装.NET Framework 7.0.4,正在安装..."
;ExecWait "$INSTDIR\windowsdesktop-runtime-7.0.4-win-x86.exe"
; 静默安装.NET Framework 7.0.4
ExecWait '"$INSTDIR\windowsdesktop-runtime-7.0.4-win-x86.exe" /q /norestart'
FunctionEnd

 

4:在安装的界面改变banner

; 欢迎页面
!define MUI_WELCOMEFINISHPAGE_BITMAP "C:\Users\Avecle\Desktop\release\favicon.ico"
!insertmacro MUI_PAGE_WELCOM

例子:
; Welcome page
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\resource\welcome_install.bmp"
!insertmacro MUI_PAGE_WELCOME

标签:MUI,c#,安装包,NSIS,7.0,卸载,PC8824,安装
From: https://www.cnblogs.com/smile908/p/17696272.html

相关文章

  • TFRecord文件训练速度调优
    TFRecord文件训练速度调优问题描述:背景:tfrecord文件由spark生成:res_df.write.format("tfrecords").option("recordType","Example")mode("overwrite").save("path/")大约有90个特征,其中有int型、string型、单值序列型、多值序列型(保存时拍平为一维列表了,读取时指......
  • Graph transduction via alternating minimization
    目录概符号说明GTAM交替优化求解WangJ.,JebaraT.andChangS.Graphtransductionviaalternatingminimization.ICML,2008.概一种对类别不均更鲁棒的半监督算法.符号说明\(\mathcal{X}_l=\{\mathbf{x}_1,\cdots,\mathbf{x}_l\}\),labeledinputs;\(\mathcal......
  • CSS3 中 transition 和 animation 的属性分别有哪些
    Transition属性:transition 属性用于定义元素在状态改变时从一个样式转换到另一个样式的过渡效果。它包含以下几个属性:transition-property:指定过渡效果应用的CSS属性名称,多个属性可以用逗号分隔。transition-duration:指定过渡效果的持续时间,单位可以是秒(s)或毫秒(ms)。transit......
  • 将Google Analytics for Firebase数据导入BigQuery
    点击打开英文链接发送反馈解决方案将GoogleAnalyticsforFirebase数据导入BigQuery本教程介绍了如何将GoogleAnalyticsforFirebase中的事件日志导出到GoogleBigQuery中,以便深入分析数据。Firebase 是一个构建移动应用程序的平台,其中包括数据和文件存储,实时同步,身份验证等功......
  • android-解决 Android N 上 报错:android.os.FileUriExposedException
    我们使用手机的时候经常会看到应用程序提示升级,大部分应用内部都需要实现升级提醒和应用程序文件(APK文件)下载。一般写法都差不多,比如在启动app的时候,通过api接口获得服务器最新的版本号,然后和本地的版本号比较,来判断是否需要弹出提示框下载,当然也可以通过推送的自定义消息来实现......
  • C# 数字后面有个M字母 所代表的含义,还有哪些类似的字母
    在C#中,数字后面的"M"表示该数字是一个双精度(decimal)类型的数值。双精度类型是C#的一种数据类型,用于存储较大范围和更高精度的十进制数值。通过在数字后面添加"M",可以告诉编译器将该数字解析为双精度类型。例如,你可以使用以下方式声明一个双精度类型的数值:decimalnumber=10.5M;......
  • Blas xGEMV launch failed : a.shape=[1,2048000,50], b.shape=[1,50,1], m=2048000,
    BlasxGEMVlaunchfailed:a.shape=[1,2048000,50],b.shape=[1,50,1],m=2048000,n=1,k=50问题描述:使用tensorflow2运行模型时报错:2rooterror(s)found.(0)Internal:BlasxGEMVlaunchfailed:a.shape=[1,2048000,50],b.shape=[1,50,1],m=2048000,n=1,k=5......
  • Codeforces Round 897 (Div. 2) A~E
    CodeforcesRound897(Div.2)A~EA:原先数组里面最小的位置放最大的数,次小的放次大的即可。voidsolve(){ intn;cin>>n; for(inti=1;i<=n;i++){ intx;cin>>x; c[i]={x,i}; } sort(c+1,c+1+n); intnum=n; for(inti=1;i<=n;i++){ ans[c[i].second]=num;num--......
  • 更新 CentOS 账号秘钥
    通过子账号登入系统创建密钥对[username@devicename~]$ssh-keygen-trsa-C"20230912"#-C参数为备注,方便自己辨识Generatingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/home/username/.ssh/id_rsa):#回车,默认路径Createddirect......
  • 上架亚马逊CPC证书常用测试标准总结,CPSC总共公布了38个标准
    在亚马逊美国站,上架与儿童相关的产品,包括玩具、婴童用品等,会被要求出CPC证书,否则将面临产品被下架、货款被扣留、被起诉等风险!CPC认证CPC认证就是儿童产品安全证书(Children’sProductCertificate,CPC),适用于所有以12岁及以下儿童为主要目标使用对象的产品,如玩具、摇篮、儿童服装......