我正在创建具有多重依赖关系的安装程序,在我的exe安装成功后,它将重新安装。但是,虽然从注册表中读取它什么也没给出,但注册表中仍然存在条目。为了调试这个问题,我正在阅读我的注册表项,它显示了正确的值。但是当我再次运行我的exe时,它什么也没提供。“当我安装我的exe依赖项然后我的exe时,这个问题就来了。当依赖项已经安装时,这个问题就不会出现了。请帮助我代码:ReadRegStr$R0HKLM"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}""UninstallString"StrCmp$R0"
我们有一个Windows应用程序,其中包含一个写入ProgramData文件夹的组件。运行卸载程序时,不会删除此组件生成的文件。使用UAC::RunElevated,我们首先将第三方组件安装到ProgramDataSetOutPath"$RENDERER_INSTALL_DIR"LogSetOnFile/r"${MAGNIFY_DIR}/secRenderer/Arelle/*"LogSetOffAccessControl::GrantOnFile"$RENDERER_INSTALL_DIR""(S-1-5-32-545)""FullAccess"在运行过程中,该组件在ProgramD
在静默安装模式下,用户不会通过PageExdirectory询问安装目标。,因此函数DirVerify和GetInstDirError永远不会被调用。这也适用于出于与上述相同的原因对安装目标进行硬编码的安装(一个坏主意):永远不会调用PageEx目录。 最佳答案 您的示例代码没问题,但在Win9x上调用${DriveSpace}可能会失败。我还删除了指定部分ID的需要!defineAPPNAME"CalcEnoughSpace"name"${APPNAME}"outfile"$%temp%\${APPNAME}.exe"ShowIn
以下NSIS行由于某种原因拒绝在WindowsXP下运行(立即返回):ExecWait'"$PROGRAMFILES\CommonFiles\MicrosoftShared\MSInfo\msinfo32"/report"$DESKTOP\msinfo.log"'如果我在命令行中运行msinfo32,它会正常运行:C:\DocumentsandSettings\Admin>"%PROGRAMFILES%\CommonFiles\MicrosoftShared\MSInfo\msinfo32"/report"%APPDATA%\..\Desktop\msinfo.log"为什么?我该如何
我有一个Ruby应用程序,我正在使用NSIS构建的安装程序在Windows7的ProgramFiles下安装(连同打包的ruby解释器)。为了调试它,我编辑了其中一个文件以添加一些调试语句。之后,我卸载了软件包并运行了新版本的安装程序,其中包含已编辑文件的新副本,没有调试语句。现在,我无法将新副本加载到ruby中。如果我运行type在cmd.exe中,或在Notepad.exe或Firefox中打开文件,我看到了新版本。如果我运行ruby-e"putsFile.read('')",或者在emacs中打开文件,我看到的是旧版本。如果在Windows资源管理器中,我将文件复制到一个
如果您尝试在没有任何更新的情况下在Windows8.1上安装vs2015可再发行组件,它将无法安装。但是安装过程中guid在注册表中已经足够了,所以如果您运行一个程序来检查注册表中是否存在可再发行组件,您将通过该检查。如果您随后尝试运行一个使用vs2015编译的程序,该程序需要一些安装失败的dll,您将看到一个弹出窗口,显示“该程序无法启动,因为......”你知道该怎么做。我正在开发一个有这个问题的安装程序(使用NSIS),我试图找到一种方法来检测dll丢失问题,然后再运行.exe并获取弹出窗口。是否有任何我可以运行的命令行工具或任何我可以调用的NSIS函数可以在问题发生之前提示我解
我猜这个答案存在于某个地方,但我已经搜索和尝试了8个多小时,所以我要问了。如何在安装时在Windows8.1(以及8和7)开始屏幕上获取图标?我正在使用NullsoftScriptableInstallSystem.我已经尝试了2.46和3.0b0版本(我认为这与它无关,但不妨同时尝试这两个版本)。我认为我脚本的相关部分是这个!defineAPPNAME"MyApp"!defineCOMPANYNAME"Greggman"SetShellVarContextcurrentCreateDirectory"$STARTMENU\Programs\${COMPANYNAME}"CreateS
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。Improvethisquestion在我的NSIS期间WinForms应用程序的设置脚本,我使用以下CACLS授予用户组对子文件夹的全部权限的命令:Exec'CACLS"$INSTDIR\SubFolder"/E/T/C/G"Users":F'所以实际上执行的CACLS命令类似于:CACLS"c:\ProgramFiles\MyApp\SubFolder"/E/T/C/G"Users":F然后当我在Windows资源管理器中查看
我有一个应用程序需要SQLite数据库才能运行。在我的NSIS脚本中,数据库被复制到用户的Local/AppData文件夹中。如果安装该程序的用户是管理员用户,这就可以正常工作。但是,如果标准用户尝试安装该程序,安装程序会要求输入管理员密码(因为标准用户无法在Windows上安装程序)并且正在安装的用户现在被切换为管理员,导致数据库安装在管理员Local/AppData文件夹中,而不是实际用户的AppData文件夹中。因此,实际上,当标准用户尝试运行该程序时,它找不到数据库。我不确定如何处理这种情况(最佳实践,如果有的话)并且找不到回答它的问题。安装程序是否应该将数据库放到公共(pub
我正在寻找如何创建类似于下面所示的安装程序:上面是VisualStudio2013安装程序的图像。这个安装程序在Windows7/8上运行良好。我尝试了几个选项并创建了示例安装程序(包括nsis、wix、inno5),但它们都没有提供这种UI对于安装程序。有人知道或创建过类似的安装程序吗? 最佳答案 您可以使用来自AdvancedInstaller的预定义支持来做一些非常相似的事情.请参阅下一个示例:http://www.advancedinstaller.com/surface-screen-shot.html请注意,这在Adva