zoukankan      html  css  js  c++  java
  • 安装和布署项目

    打开vs2003,新建安装和布署项目,取名为你的程序名称,我选择的是“安装向导”,操作步骤与blog.csdn/johnsuna/archive/2004/12/19/221618.aspx的操作类似,这下不同的是向导结束之后。
    在应用程序文件夹中加入你的自定义ico,这个ico将决定你的应用程序显示图标了,同时包括快捷方式的图标。
    在右边“解决方案资源管理器”中,点击你的解决方案名称(即第二行),此时在属性栏中会显示出“xxx部署项目属性”,在第一个addremoveprogramsicon属性后“浏览”到你的ico图标,接着在下面author输入作者名,也就是你的名字,其他localization是语言属性,manufacturer,productname的属性将是用户在安装时默认设置的文件夹路径一部分了,设置title为你的应用程序标题名称。
    这里重点讲解如何创建快捷方式的图标:
    点击左边的应用程序文件夹后,中间一栏中,将出现你已加入的应用程序集名称(如果没有的话,请按右键添加)。右击“创建xxx.exe的快捷方式”,再重命名为你的快捷方式名称,再点中它,在右边属性中有一个icon属性栏,“浏览”,加上你的ico图标,根据你的需要进行其它设置。最后,将你的快捷移动到用户的“程序”菜单栏中,这时你已建立用户程序菜单中的快捷方式了。
    同样重复类似步骤完成“用户桌面”快捷方式的设置。(可惜,vs中无法直接复制、粘贴!)
    如需要创建卸载快捷,请看我前两天写的这个东东:blog.csdn/johnsuna/archive/2004/12/19/221618.aspx,步骤都差不多。
    最后当然就是“生成”-“生成你的xxxx项目”了。
    想看看效果?这里有我的两个小工具:.qqaa/download/(下载下来安装一下就知道怎么回事了,呵呵)
    享受你的成功喜悦吧!
    打开你的生成结果,查看一下,多了些什么?嘿嘿,自动将dotnetfx.exe加上了,还有在用户安装时会自动检查是否安装框架,如果没有安装,则自动开始安装,然后再安装你的应用程序。
    这下子够方便了吧?(以前我们的安装都是要到处想办法的,什么使用unmanage c++呀,或是下载一个其他打包的东东啦,现在不用了!感觉好多了)
    附录a:
    如何使用 visual studio  创建安装程序包
    概要:本文阐述了在 visual studio  开发环境中创建安装程序包的步骤。此外,本文还阐述了各种类型的安装项目以及如何将文件或依赖项包含在安装程序中。
    部署项目的类型
    部署项目有五种类型:合并模块项目、安装项目、web 安装项目以及 cab 项目。安装向导可以指导您完成创建部署项目的过程。以下是为项目选择正确的部署项目类型应遵循的规则。 项目类型
    用途
    合并模块项目 (.msm)
    将可能由多个应用程序共享的组件打包
    安装项目(.msi)
    为基于 windows 的应用程序生成安装程序
    web 安装项目 (.msi)
    为 web 应用程序生成安装程序
    cab 项目 (.cab)
    创建压缩文件以便下载到旧版 web 浏览器
    安装向导 (.msi)
    帮助自动创建此表前面提到的一个部署项目
    合并模块项目允许您将文件或组件打包成一个模块以方便共享。得到的 .msm 文件可以包含在任何其他部署项目中,但是不能独立进行部署。
    安装项目与 web 安装项目的区别在于部署安装程序的位置:
    (1)对于安装项目,安装程序将文件安装到目标计算机上的 program files 目录中。
    (2)对于 web 安装项目,安装程序将文件安装到 web 服务器上的 virtual root 目录中。
    cab 项目允许您创建 .cab 文件,以便将可以从 web 服务器下载到 web 浏览器的 activex 组件打包。
    如何创建安装程序包
    1.通过下列方式之一启动一个新项目:在文件菜单上,指向新建,然后单击项目。
    - 或 -如果您打算为某个项目创建安装程序包,则打开该项目,右键单击解决方案资源管理器中的解决方案myproject(其中 myproject 是您项目的名称),指向添加,然后单击新建项目
    2.在新建项目对话框中,选择“项目类型”窗格内的“安装和部署项目”,然后在“模板”窗格中选择所需的安装程序类型。
    该项目便被添加到解决方案资源管理器中,然后会打开文件系统编辑器。
    3.在属性对话框中,选择productname属性,然后键入产品的名称。
    如何将文件添加到安装程序包
    1.在文件系统编辑器中,选择应用程序文件夹节点。
    2.右键单击应用程序文件夹,然后在操作菜单上依次单击添加、文件。在添加文件对话框中浏览并选择需要添加到应用程序中的所有文件。
    注意:如果您的解决方案中已经有一个应用程序项目,则不要选择文件,您可以选择项目输出来添加项目输出。
    3.要将现有合并模块添加到安装程序包(这对 cab 项目是不可能的),请在解决方案资源管理器中右键单击安装程序包的名称。单击添加,然后单击合并模块。在添加模块对话框中浏览并选择需要添加到应用程序中的所有合并模块。
    附录b:如何为 visual studio 2005 或 visual studio  安装和部署项目创建快捷方式
    创建快捷方式的步骤
    可以通过下面的步骤在部署项目中创建快捷方式:
    1.打开文件系统编辑器:在视图菜单中,指向编辑器,然后单击文件系统。
    2.打开包含要为其创建快捷方式的文件的应用程序文件夹。
    3.右键单击要为其创建快捷方式的文件。
    4.单击创建快捷方式。
    5.将在原始文件所在的同一文件夹中创建快捷方式。
    6.将快捷方式拖动到所需文件夹。例如,如果希望在程序菜单中创建快捷方式,请将快捷方式拖动到程序菜单文件夹;如果希望在开始菜单中创建快捷方式,请将快捷方式拖动到开始菜单文件夹。还可以通过“属性”窗口的文件夹字段更改快捷方式的文件夹位置。
    附录c:我的下应用程序发布问题的简易解决方案
    这几天写了两个小工具,一个是图片自动浏览器,另一个是批量文件名修改器。(如你感兴趣,在这里.qqaa/download/ 可以下载到)
    正想发布时,遇到win98,win2k系列,win2003,win xp客户端的发布问题,主要是有的可能安装了“ 框架”,有的则没有。
    怎么解决这个问题呢?
    以下是我的解决方法:
    1、vs中新建一个安装与布署项目,选择“安装向导”,名称为你的应用程序名称,选择好方案保存位置,“确定”,出现相应提示,按“下一步”,选择一种项目类型,我选择了默认的第一个,“下一步”。
    2、选择要包括的文件,这里要注意了!
    如果你需要让用户可以卸载你的应用程序,除了添加你的应用程序名称外(我这里由于是两个小工具,所以有两个应用程序文件,一个是asbestsee.exe,另一个是asbestfilename.exe),还需要选择一个名为msiexec.exe的文件,注意:(1)如果是win98下的安装,请选择win98操作系统目录下的msiexec.exe文件(一般在c:windowssystem目录下);(2)如果是其他,比如win2k系列,请选择该操作系统目录下的msiexec.exe文件(一般在winntsystem32目录下)。
    3、选择下一步,下一步或“完成”,进入项目方案中。在左边“目标计算机上的文件系统”下,有个“应用程序文件夹”,点击之,找到msiexec.exe文件,按鼠标右键,“创建msiexec.exe 的快捷方式”,再点中新出现的项目“msiexec.exe 的快捷方式”,重命名为你需要卸载的说明文字,如我的:“卸载qqaa工具”。
    4、点击右边的解决方案资源管理器中按点击你的项目名称(即第二行),出现“xxx布署项目属性”字样,栏中有一个“productcode”的属性,属性值中有“{8dc61eae-b624-491d-ad49-ffaewrerre}”类似字样,选中它“复制”。
    5、再次点击你的卸载快捷方式名称,比如我的是“卸载qqaa工具”,再到右下角属性栏中,有一个叫arguments的属性栏,在属性栏中首先填入“/x”后加一个空格,再“粘贴”,将productcode的属性值copy至此。
    6、将此快捷拖入用户的“程序”菜单中,这样就可以在“运行”-“程序”菜单中看到“卸载qqaa工具”了。如果需要将“卸载xxxx”快捷方式加入桌面呢?呵呵,重复以上操作一次,不同的是要将它拖入“用户桌面”。
    7、再在vs的顶部菜单栏中“生成”-“生成 xxxx”(xxxx为你的项目名称).
    8、从微软网站上.microsoft/downloads/直接下载microsoft®  framework 1.1 版可再发行组件包(dotnetfx.exe文件),copy到您的发布生成的目录中,再放上你的安装说明及提示文件等。安装说明中提示用户首先安装dotnetfx.exe,再点击你的应用程序进行运行即可。
    附录d:
    在文件系统编辑器中添加和移除快捷方式
    快捷方式可添加到部署项目中,以便提供对目标计算机上文件的直接访问。例如,可能希望在桌面和“开始”菜单上放置某个可执行文件的快捷方式,以允许用户启动该文件,或者可能希望添加“应用程序”文件夹的快捷方式,以便用户浏览其内容。
    警告   尝试通过“添加文件”命令添加现有快捷方式将添加该快捷方式所指向的文件,而不是快捷方式本身。
    添加文件或文件夹的快捷方式
    1.在“文件系统编辑器”中,选择要创建其快捷方式的文件或文件夹。 注意   添加特殊文件夹的快捷方式时,必须将文件夹的alwayscreate属性设置为 true。
    2.在“操作”菜单上,单击“创建 <name> 的快捷方式”。快捷方式出现在“文件列表”中。
    3.选定该快捷方式,然后在“编辑”菜单中选择“剪切”。
    4.在“文件夹列表”中,选择目标计算机上要在其中显示快捷方式的文件夹,然后在“编辑”菜单中选择“粘贴”。
    提示   也可将快捷方式从一个位置拖到另一个位置。
    移除快捷方式
    在“文件列表”中选定该快捷方式,然后在“编辑”菜单中选择“删除”。

    部署工程停当之后,在其他电脑上安装软件可能会出现各种错误:

    VS2005 Debug时提示没有找到MSVCR80D.dll的解决办法

    总结各种解决方法如下:

         原因:(不知道在说啥)由于VS.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到,不过也可以不嵌入,这样会生产一个<程序名>.exe.manifest的文件,没它exe自己就转不了了:)这是个新功能,微软弄了个新工具(mt.exe),结果不好用,好像是fat32下时间戳有问题(在ntfs下这个问题就没有了),搞得manifest有时嵌入不到exe中(默认配置是嵌入的,所以就报错找不到dll了。

    解决方法:(任选一个即可)

    1、微软官方:在项目的“属性|配置属性|清单工具|常规”中的“使用FAT32解决办法”选择“是”(默认为“否”),重新生成项目即可解决问题。该方法是唯一真正针对问题所在而提出的解决方法,使清单工具可以正确更新。(此方法是官方解决方法,也比较方便,推荐,注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用)
    2.生成Debug版本项目时,未打开连接器的/MANIFEST开关。在'Project Properties->Configuration Properties->Mainfest Tool->Input and Output->Embed Manifest' 将 YES 改成 NO 就可以了.

    3、如果建立的是Win32的项目的话可以在项目-(项目名)属性-配置属性-C/C++-代码生成-运行时库 将其改为多线程调试 /MTd

    4、在C:/Program Files/Microsoft Visual Studio 8/VC/redi
    st/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 下找到了下列文件:

    msvcm80d.dll
    msvcp80d.dll
    msvcr80d.dll
    Microsoft.VC80.DebugCRT.manifest

    把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

    5、将Debug版本中第一次生成的.res文件删除后重新Build一次

    6、采用Release模式,不要采用Debug模式就可以了

    7、不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。

    8、在NTFS格式的盘中建立项目。

    附加自己亲自试验

    系统文件格式fat32

      vs2005(未打sp1),先采用第四种方法把这几个文件拷贝至system32下,再按第三种方法改为多线程调试 /MTd

    启动调试OK

    用vs2008 vc编译的程序,在其它没有安装vs2008的机器上不能使用。
    提示:
    “应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止应用程序。”
    使用Dependcies没有发现少库。
    尝试的方法:
    1 Program FilesMicrosoft Visual Studio 9.0VC edistx86下的dll拷到程序所在目录。没能解决问题
    2 安装 .net framwork 2.0 。 没有解决问题
    这个问题如何解决呢?望各位指教

    最近,我也碰到了这个问题。
    【现象】windows xp, vs2008下开发的程序拿到winserver 2003上运行,报告错误
    1.“由于应用程序不正确,应用程序未能启动“
    2.解决第一个问题后。报告应用程序正常初始化失败
    【尝试的办法】
    1.第一个问题比较简单,拷贝相应的dll过来就可以解决。或者选择静态链接+MT,都可以解决。就是因为缺少相应的dll库造成的。关键是第二个问题
    2.vs2005,vs2008采用manifest指向的dll来动态链接运行时库。我把动态链接改为静态链接,在静态库中使用MFC,代码生成选择 MT,没有解决。
    3.使用depends将所有依赖的dll复制到程序执行目录,没有解决,问题依旧。
    4。改用vs2010重新编译程序,没有解决,问题依旧。
    5. 修改代码,将所有依赖的外部dll去掉,问题解决。看来是我的程序调用了其他人程序的问题。这个dll的名字叫ICTCLAS50.dll,是一个伟大的词法分析程序。至此,定位到是该dll的问题,但是如何解决呢?仍然没有答案。

    如果碰到问题,可以使用vs自带的depends工具检测exe文件所依赖的dll文件然后添加到部署工程中,depends工具所在目录:C:Program FilesMicrosoft Visual Studio 8Common7ToolsBin

  • 相关阅读:
    那些容易忽略的事4-(正则表达式反向引用 )
    那些容易忽略的事3-(变量提升和函数提升)
    那些容易忽略的事(2)
    那些容易忽略的事(1) -变量与运算符+
    call()与apply()传参需要注意的一点
    CSS凹型导航按钮
    动态的99乘法表
    js中的for-of循环遍历数组
    交换2个变量的值
    gl.disableVertexArray P77 关闭location指定的attribute变量
  • 原文地址:https://www.cnblogs.com/freedesert/p/3216668.html
Copyright © 2011-2022 走看看