使用NSIS每次安装和运行

时间:2014-03-31 20:54:50

标签: jenkins msbuild nsis

我正在对安装人员进行一些研究,现在我的公司正在使用点击一次从jenkins部署一些问题。我们有一个测试证书(这些程序都是内部的),并且由于某种原因,某些问题与certifcate与某些msbuilds / .net框架不兼容。所以我正在研究替代方案。

但是我希望保持相同的架构。它现在如何工作是有人点击我们任务栏中的按钮,点击他们想要的应用程序,然后单击一次安装更新(或安装)而无需进一步的用户输入并启动应用程序。我听说过很多关于NSIS的好事。

到目前为止,我只看到了从互联网上下载任何东西时所期望的通用应用程序安装程序。我可以使用NSIS做上面描述的事情吗?

1 个答案:

答案 0 :(得分:1)

非常基本的无交互安装程序可能如下所示:

Name foo
OutFile foo_setup.exe
AutoCloseWindow true
RequestExecutionLevel user
InstallDir "$LocalAppData\Programs\MyApp"

Page InstFiles

Section
SetOutPath "$InstDir"
WriteUninstaller "$InstDir\uninst.exe"
; TODO: Add registry entry for Add/Remove Programs
File "MyApp.exe"
File "Data.xml" ; Support files etc
Exec '"$InstDir\MyApp.exe" -firstrun "c:\some path\file.ext"'
SectionEnd

Section Uninstall
Delete "$InstDir\MyApp.exe"
Delete "$InstDir\Data.xml"
Delete "$InstDir\uninst.exe"
RMDir "$InstDir"
SectionEnd

如果要为%ProgramFiles%中的所有用户安装,则可能会遇到Exec问题,因为如果非管理员在UAC对话框中使用了其他某个帐户,则该应用最终可能会以错误的用户身份运行。