zoukankan      html  css  js  c++  java
  • exe安装文件制作(Inno Setup制作Setup.exe)

    本文主要记录使用Inno Setup制作setup.exe安装文件过程中遇到的问题和解决方案。

    1.Inno Setup 基本使用请参考:

    http://www.cnblogs.com/ahuo/archive/2007/07/16/819738.html

    2.安装时提示需要关闭以下应用程序:Microsoft Visual Studio 2010,Microsoft (R) Visual C++ Package Server

      出现这个提示的原因:用VS2010编译出来的共享库或者插件(如果是exe,选择静态库不会出现这种情况的,Activex是不能选择静态库的)在其他机器上运行,需要复制mfc100.dll,msvcr100.dll等dll文件到{sys},如果有些机器上已经有这些文件,而且还在占用着,就会出现这个提示。即使在安装文件中加入了限制条件:如果存在不复制。

    一开始觉得无所谓,出现就出现吧,又不影响安装。后来发现在有的机器上如果选择了“自动关闭该应用程序”,我自己程序不能用了。必须得解决啊,就开始研究InnoSetup的用法,发现没有跟这个问题相关的属性和用法。最后想到了批处理,不用Innosetup的脚本直接复制这些dll文件到{sys}中,通过bat命令。 希望有遇到类似问题的童鞋可以找到一种解决方法.如果有人知道其他方法,可以留言相互交流。

    3.Inno Setup调用bat文件.

    在 [Files] 段里加上你自己的批处理文件,比如:

    Source: "copy.bat"; DestDir: "{app}"; Flags: ignoreversion

    在 [Run] 段里加上安装后的运行命令,比如:

    Filename: "{app}\copy.bat"; Flags: nowait  

    4.bat脚本命令的编写

    需要判断系统是32或64位

    @echo off
    @title 判断是否需要复制mfc100.dll等
    
    if exist C:\Windows\SysWOW64 (
    
    echo "存在C:\Windows\SysWOW64"
    
    if exist C:\Windows\SysWOW64\mfc100.dll (
    
    echo "C:\Windows\SysWOW64\mfc100.dll已存在" 
    )else (
    copy mfc100.dll C:\Windows\SysWOW64\mfc100.dll    
    )
    
    ) else (
    
    if exist C:\Windows\System32\mfc100.dll (
    
    echo "C:\Windows\System32\mfc100.dll已存在" 
    )else (
    copy mfc100.dll C:\Windows\System32\mfc100.dll    
    )
    
    )
  • 相关阅读:
    WCF Server Console
    Restart IIS With Powershell
    RestartService (recursively)
    Copy Files
    Stopping and Starting Dependent Services
    多线程同步控制 ManualResetEvent AutoResetEvent MSDN
    DTD 简介
    Using Powershell to Copy Files to Remote Computers
    Starting and Stopping Services (IIS 6.0)
    java中的NAN和INFINITY
  • 原文地址:https://www.cnblogs.com/xsgame/p/3082046.html
Copyright © 2011-2022 走看看