当前位置:文档之家› vb程序打包

vb程序打包

vb程序打包
vb程序打包

打包过程:

一).创建部署项目

1. 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。

2. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入setup1。

3. 单击“确定”关闭对话框。

4. 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。

5. 在“属性”窗口中,选择ProductName 属性,并键入信息管理系统。

二).将主程序项目的输出添加到部署项目中

1. 在“文件系统编辑器”中,选择“应用程序文件夹”。在“操作”菜单上,指向“添加”,然后选择“项目输出”。

2. 在“添加项目输出组”对话框中,选择“项目”下拉列表中的“你的程序”。

3. 单击“确定”关闭对话框。

4. 从列表中选择“主输出”和“内容文件”组,然后单击“确定”。

三).创建安装程序类

1. 在“文件”菜单上指向“新建”,然后选择“项目”。

2. 在“新建项目”对话框中,选择“项目类型”窗格中的“Visual Basic 项目”,然后选择“模板”窗格中的“类库”。在“名称”框中键入installDB。

3. 单击“打开”关闭对话框。

4. 从“项目”菜单中选择“添加新项”。

5. 在“添加新项”对话框中选择“安装程序类”。在“名称”框中键入installDB。

6. 单击“确定”关闭对话框。

7. 详细代码附后。

四).创建自定义安装对话框

1. 在解决方案资源管理器中选择“setup1”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。

2. 在用户界面编辑器中,选择“安装”下的“启动”节点。在“操作”菜单上,选择“添加对话框”。

3. 在“添加对话框”对话框中,选择“许可协议”对话框,然后单击“确定”关闭对话框。

4. 在“添加对话框”对话框中,选择“文本框(A)”对话框,然后单击“确定”关闭对话框。

5. 在“操作”菜单上,选择“上移”。重复此步骤,直到“文本框(A)”对话框位于“安装文件夹”节点之上。

6. 在“属性”窗口中,选择BannerText 属性并键入:安装数据库.

7. 选择BodyText 属性并键入:安装程序将在目标机器上安装数据库

8. 选择Edit1Label 属性并键入:数据库名称:

9. 选择Edit1Property 属性并键入CUSTOMTEXTA1

10. 选择Edit1Value 属性并键入:dbservers

11. 选择Edit2Label 属性并键入:服务器名:

12. 选择Edit2Property 属性并键入CUSTOMTEXTA2

13. 选择Edit2Value 属性并键入:(local)

14. 选择Edit3Label 属性并键入:用户名:

15. 选择Edit3Value 属性并键入:sa

16. 选择Edit3Property 属性并键入CUSTOMTEXTA3

17. 选择Edit4Label 属性并键入:密码:

18. 选择Edit4Property 属性并键入CUSTOMTEXTA4

19. 选择Edit2Visible、Edit3Visible 和Edit4Visible 属性,并将它们设置为true

五).创建自定义操作

1. 在解决方案资源管理器中选择“setup1”项目。在“视图”菜单上指向“编辑器”,然后选择“自定义操作”。

2. 在自定义操作编辑器中选择“安装”节点。在“操作”菜单上,选择“添加自定义操作”。

3. 在“选择项目中的项”对话框中,双击“应用程序文件夹”。

4. 选择“主输出来自installDB(活动)”项,然后单击“确定”关闭对话框。

5. 在“属性”窗口中,选择CustomActionData 属性并键入

“/dbname=[CUSTOMTEXTA1] /server=[CUSTOMTEXTA2]

/user=[CUSTOMTEXTA3] /pwd=[CUSTOMTEXTA4]

/targetdir="[TARGETDIR]\"”。

附:/targetdir="[TARGETDIR]\"是安装后的目标路径,为了在installDB类中获得安装后的路径,我们设置此参数。

六).添加文件

1. 将SQL Server备份成文件DB.dat添加到“setup1”项目(在企业管理器中右击数据库->所有工作->备份数据库,备份成一个文件,取名为DB.dat)

2. 将安装文件LisenceFile.rtf添加到“setup1”项目

3. 在用户界面编辑器中,选择许可协议,设置LisenceFile属性为LisenceFile.rtf 文件

4.一般会自动将依赖项添加到“检测到的依赖项”,如果没有,那么我们要手动将其加入步骤5)

Crystal_Managed2003.msm (如果有水晶报表)

dotnetfxredist_x86.msm (.net一定是必须的)

... (如果有引用其他的dll)

5. 如果使用了水晶报表,手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件)(包括dotNetFramework和MDAC27),位于:C:\Program Files\Common Files\Merge Modules\ 下,*为必要的

具体功能如下:

(托管组件MSM 处理所有托管组件的分发,其中包括Windows 窗体查看器、Web 窗体查看器和所有Crystal Decisions 命名空间)

* Crystal_Managed2003.msm

Crystal_Managed2003_chs.msm

(对于使报表运行所需的所有其他文件,由数据库访问MSM 处理其分发。其中包括数据库、导出和图表驱动程序。)

* Crystal_Database_access2003.msm

Crystal_Database_access2003_chs.msm

(KeyCode MSM 处理Crystal Decisions 密钥号码的安装,注意是添加合并模块,否则没有“MergeMouduleProperties”属性)

* Crystal_regwiz2003.msm

(如果报表文件使用了https://www.doczj.com/doc/055274172.html, 的dataset 数据集对象,那么VC_User_CRT71_RTL_X86_---.msm 和

VC_User_STL71_RTL_X86_---.msm 模块也必须包含在安装工程中。而且这两个模块的文件安装属性的"Module Retargetable Folder"项必须修改成为系统目录)

VC_User_CRT71_RTL_X86_---.msm

VC_User_STL71_RTL_X86_---.msm

(很多人经常出现查询错误,不妨加上这个)

6. 打开解决方案-->右键点击Crystal_regwiz2003.msm的属性,在“MergeMouduleProperties”里的“License Key”填入:

AAP5GKS0000GDE100DS(这个是你生成Crystal Report是用到的注册号的密码!)

七).打包时加入卸载功能:

方法一:

1.在打包项目中添加文件msiexec.exe(一般可在c:\windows\system32\下找到)

2.在文件系统视图中选择应用程序文件夹,在msiexec.exe上按右键,选择创建快捷方式,重命名快捷方式为"卸载".

3.更改此快捷方式的Arguments 为"/x {产品id}",产品id的值为打包项目的ProductCode属性值.

方法二:(推荐)

1.先生成安装包,记下ProductCode(选择解决方案资源管理器根目录如setup1,再查看属性标签,不是右键中的属性),下面要用到

2.用https://www.doczj.com/doc/055274172.html,建立一个新的控制台程序uninst.exe文件

'power by: landlordh

'for 2000,xp,2003

Module uninstall

Sub Main()

Dim myProcess As Process = New Process

If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then

myProcess.Start("msiexec",

"/X{2B65D4A9-C146-4808-AB4B-321FB0779559}") '改为自己的ProductCode

End If

myProcess.Close()

End Sub

End Module

3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷方式

八).打包时加入.net环境和MDAC功能:

把MS的PluginInstaller.msi插件装上后,用https://www.doczj.com/doc/055274172.html,的自带的打包工具打包,就会自动把

.net framework环境打进去,再下面的步骤进行设置,就可以把MDAC也打包.

使用Setup 项目安装MDAC

1.确保Visual Studio .NET 框架引导程序插件已安装。

2.在Solution Explorer 中选择Setup 项目。

从View 菜单指向Editor,并选择Launch Conditions(启动条件)。

3.选择Requirements on Target Machine(搜索目标计算机)节点。

从Action 菜单,选择Add Registry Launch Condition(添加注册表搜索)。

4.选择Search for RegistryEntry1 节点。在Properties 窗口中,

选择RegKey 属性,并键入Software\Microsoft\DataAccess。

5.选择Root 属性,并选择vsdrrHKLM。

6.选择Value 属性,并键入FullInstallVer。

7.选择Property 属性,并键入MDACSEARCH。

8.在Launch Conditions Editor(启动条件)中,添加Condition1 节点。

选择Condition1 节点,在Properties 窗口中,选择Condition 属性,并选择MDACSEARCH>="2.6"。

9.在Solution Explorer 中选择Setup 项目。在Project 菜单上,选择Properties。

10.将Bootstrapper 属性设置为Windows Installer Bootstrapper(Windows 安装引导程序)。

附:

installdb.vb类,要添加引用system.configuration.install.dll :

Imports https://www.doczj.com/doc/055274172.html,ponentModel

Imports System.Configuration.Install

Public Class Installer1

Inherits System.Configuration.Install.Installer

#Region " 组件设计器生成的代码"

Public Sub New()

MyBase.New()

'该调用是组件设计器所必需的。

InitializeComponent()

'在InitializeComponent() 调用之后添加任何初始化

End Sub

'Installer 重写dispose 以清理组件列表。

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'组件设计器所必需的

Private components As https://www.doczj.com/doc/055274172.html,ponentModel.IContainer

'注意: 以下过程是组件设计器所必需的

'可以使用组件设计器来修改此过程。

'不要使用代码编辑器来修改它。

Private Sub InitializeComponent()

components = New https://www.doczj.com/doc/055274172.html,ponentModel.Container End Sub

#End Region

Public Overrides Sub Install(ByVal stateSaver As

System.Collections.IDictionary)

MyBase.Install(stateSaver)

If Not InstallDB() Then

'失败,反安装

Me.Uninstall(stateSaver)

Exit Sub

End If

DeleteFile(String.Format("{0}DB.dat",

Me.Context.Parameters.Item("targetdir")))

End Sub

Public Overrides Sub Uninstall(ByVal stateSaver As

System.Collections.IDictionary)

'执行反安装

MyBase.Uninstall(stateSaver)

DeleteFile(String.Format("{0}DB.dat",

Me.Context.Parameters.Item("targetdir")))

End Sub

Private Sub DeleteFile(ByVal paths As String)

'删除指定的文件

Try

Dim delFile As New System.IO.FileInfo(paths)

If delFile.Exists Then

delFile.Delete()

End If

Catch ex As Exception

End Try

End Sub

Private Sub CreateSql(ByVal paths As String)

Dim File As System.IO.StreamWriter

Dim db As String = String.Format("{0}",

Me.Context.Parameters.Item("dbname"))

Dim path As String = String.Format("{0}",

Me.Context.Parameters.Item("targetdir"))

Try

Dim s As New System.Text.StringBuilder

s.Append("use master" & vbCrLf)

s.Append("" & vbCrLf)

s.Append("if not exists (select * from sysdatabases where name='" & db & "')" & vbCrLf)

s.Append(" BEGIN" & vbCrLf)

s.Append(" create database " & db & vbCrLf)

s.Append(" END" & vbCrLf)

s.Append("" & vbCrLf)

s.Append("if exists (select * from sysdevices where

name='DBdisk')" & vbCrLf)

s.Append(" BEGIN" & vbCrLf)

s.Append(" EXEC sp_dropdevice 'DBdisk'" & vbCrLf)

s.Append(" END" & vbCrLf)

s.Append("Else" & vbCrLf)

s.Append(" BEGIN" & vbCrLf)

s.Append(" EXEC sp_addumpdevice 'disk','DBdisk', '" & path & "DB.dat'" & vbCrLf)

s.Append(" END" & vbCrLf)

s.Append("" & vbCrLf)

s.Append("restore database " & db & vbCrLf)

s.Append("from disk='" & path & "DB.dat'" & vbCrLf)

s.Append("with replace")

File = New System.IO.StreamWriter(paths)

File.Write(s.ToString)

Catch ex As Exception

Finally

File.Close()

End Try

End Sub

Private Function InstallDB() As Boolean

'安装数据库,调用自动批处理。

Try

'创建临时脚本

CreateSql(String.Format("{0}Mydb2000tp.sql",

Me.Context.Parameters.Item("targetdir")))

'调用osql执行脚本

Dim sqlProcess As New System.Diagnostics.Process

sqlProcess.StartInfo.FileName = "osql.exe"

sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -S {2} -i {3}Mydb2000tp.sql", Me.Context.Parameters.Item("user"),

Me.Context.Parameters.Item("pwd"), Me.Context.Parameters.Item("server"), Me.Context.Parameters.Item("targetdir"))

sqlProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden

sqlProcess.Start()

sqlProcess.WaitForExit() '等待执行

sqlProcess.Close()

'删除脚本文件

DeleteFile(String.Format("{0}Mydb2000tp.sql", Me.Context.Parameters.Item("targetdir")))

Return True

Catch ex As Exception

Return False

End Try

End Function

End Class

网上的另外一种installdb.vb类

installdb.vb类,要添加引用system.configuration.install.dll :

using System;

using System.Collections;

using https://www.doczj.com/doc/055274172.html,ponentModel;

using System.Configuration.Install;

using System.Reflection;

using System.IO;

using System.Data;

using System.Data.SqlClient;

namespace install

{

///

/// Installer1 的摘要说明。

///

[RunInstaller(true)]

public class Installer1 : System.Configuration.Install.Installer {

///

/// 必需的设计器变量。

///

private https://www.doczj.com/doc/055274172.html,ponentModel.Container components = null;

public Installer1()

{

// 该调用是设计器所必需的。

InitializeComponent();

// TODO: 在InitializeComponent 调用后添加任何初始化

}

///

/// 清理所有正在使用的资源。

///

protected override void Dispose( bool disposing )

{

if( disposing )

{

if(components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

#region 组件设计器生成的代码

///

/// 设计器支持所需的方法- 不要使用代码编辑器修改

/// 此方法的内容。

///

private void InitializeComponent()

{

components = new https://www.doczj.com/doc/055274172.html,ponentModel.Container();

}

#endregion

private string GetSql(string Name)

{

// //调用osql执行脚本

//

// System.Diagnostics.Process sqlProcess = new

System.Diagnostics.Process();

//

// sqlProcess.StartInfo.FileName = "osql.exe";

//

// sqlProcess.StartInfo.Arguments = String.Format(" -U {0} -P {1} -d {2} -i {3}db.sql", this.Context.Parameters["user"],

this.Context.Parameters["pwd"],"master",

this.Context.Parameters["targetdir"]);

//

// sqlProcess.StartInfo.WindowStyle =

System.Diagnostics.ProcessWindowStyle.Hidden;

//

// sqlProcess.Start();

//

// sqlProcess.WaitForExit() ;//等待执行

//

// sqlProcess.Close();

try

{

// Assembly Asm = Assembly.GetExecutingAssembly();

// System.IO.FileInfo FileInfo = new System.IO.FileInfo(Asm.Location); // string path=FileInfo.DirectoryName+@"\"+Name;

string path=this.Context.Parameters["targetdir"]+Name;

FileStream fs=new

FileStream(path,FileMode.Open,FileAccess.Read,FileShare.Read);

StreamReader reader = new

StreamReader(fs,System.Text.Encoding.Default);

//System.Text.Encoding.ASCII;

return reader.ReadToEnd();

}

catch (Exception ex)

{

Console.Write("In GetSql:"+ex.Message);

throw ex;

}

}

private void ExecuteSql(string DataBaseName,string Sql)

{

SqlConnection sqlConnection1=new SqlConnection();

sqlConnection1.ConnectionString =string.Format("server={0}; user

id={1}; password={2};

Database=master",this.Context.Parameters["server"],this.Context.Parameters[ "user"],this.Context.Parameters["pwd"]);

System.Data.SqlClient.SqlCommand Command = new

System.Data.SqlClient.SqlCommand(Sql,sqlConnection1);

try

{

Command.Connection.Open();

Command.Connection.ChangeDatabase(DataBaseName);

Command.ExecuteNonQuery();

}

catch(Exception ex)

{

Console.Write("In exception handler :"+ex.Message);

}

finally

{

Command.Connection.Close();

}

}

protected void AddDBTable(string strDBName)

{

try

{

ExecuteSql("master","Create DATABASE "+ strDBName);

ExecuteSql(strDBName,GetSql("sql.txt"));

ExecuteSql("master","exec sp_addlogin

'myoamaster','myoamaster','"+strDBName+"',Null,Null");

ExecuteSql(strDBName,"EXEC sp_grantdbaccess 'myoamaster', 'myoamaster'");

ExecuteSql(strDBName,"exec sp_addrolemember

'db_owner','myoamaster'");

}

catch(Exception ex)

{

Console.Write("In exception handler :"+ex.Message);

}

}

public override void Install(System.Collections.IDictionary stateSaver) {

base.Install(stateSaver);

AddDBTable(this.Context.Parameters["dbname"]);

}

}

}

这里有个sql.txt是数据库的sql脚本,当然可以调用osql来执行sql脚本,其实是一样的。

打包的时候必须把sql.txt文件加进来,否则不会执行。

如果你想附加数据库的mdf文件和ldf文件,用下面这段程序:

private void CreateDataBase(string strSql,string DataName,string strMdf,string strLdf)

{

String str;

SqlConnection myConn = new SqlConnection (strSql);

//EXEC sp_detach_db @dbname = 'BX_FreightMileage_2'//需要先将数据库分离出来

str = "EXEC sp_attach_db @dbname = '"+ DataName +"', @filename1 = '"+ strMdf +"',@filename2='"+strLdf+"'";

SqlCommand myCommand = new SqlCommand(str, myConn);

myConn.Open();

myCommand.ExecuteNonQuery();

myConn.Close();

}

VS2010程序打包、发布详细流程

VS2010程序打包、发布详细流程 一、开发环境 1、操作系统:Windows 7 64位(本机测试,其他系统亦可,无特殊要求) 2、开发软件:Microsoft Visual Studio 2010 3、目标软件:MFC 二、详细流程 1、新建项目 运行VS2010,在VS2010中依次选择“新建项目→其他项目类型→Visual Studio Installer→安装项目”,输入项目名称和路径,如图1所示(此次分别设置项目名称为“MySetupMaker”,项目路径在E盘根目录),点击确定按钮,进入主界面,如图2所示。 图1 新建项目

图2 项目主界面 这时在VS2010中将有三个文件夹: 1)“应用程序文件夹”:表示要安装的应用程序需要添加的文件; 2)“用户的…程序?菜单”:表示应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; 3)“用户桌面”:表示这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。 2、添加文件 “应用程序文件夹”右键点击,出现下拉菜单,选择“添加 文件(I)…”,将需 要打包的文件全部添加到该目录下,如图3所示。

图3 添加文件到“应用程序文件夹” 此处添加的文件一般是已经编译过文件,一般是应用程序debug目录下的文件。如果需要添加其他文件,亦可以通过这种方式来添加。此外,如果debug 下面有子文件夹,则需要选择“添加 文件夹(F)”,首先在“应用程序文件夹”下创建一个文件夹,然后按照上述方法,添加文件到该文件夹即可,如图4所示。 图4 添加文件夹 备注: 1)此处添加的文件都会在软件安装完成后出现在软件的安装目录; 2)如果需要修改软件图标,则需要将软件的图标文件(.ico)也添加进来。 3、设置系统必备项 在“解决方案资源管理器”中,选择当前创建的项目名称(MySetupMaker),点击右键,选择“属性”,在弹出的“MySetupMaker属性页”中选择“系统必备(P)…”,如图5、图6、图7所示。

c#winform应用程序打包步骤总结

C#WinForm应用程序打包步骤总结 一、C#WinForm打包工具 在已有的Winform方案中添加一个新项目,选择“新建项目”,在弹出对框框,项目类型选择“安装和部署项目”,模板选择“安装项目”或者“安装向导”(建议选择“安装向导”),输入安装项目的名称,路径默认为该方案存放的目录下。确定后,弹出安装向导的对话框,单击“下一步”,在新对话框选择“创建用于Windows应用程序的安装程序”,单击“下一步”,在新对话框选择“项目输出组”(建议全选),根据提示一步一步进行,可以选择附加文件,最后单击“完成”。 二、打包过程 (1)返回开发环境中,在资源管理器中,选择新建立的安装和部署项目,可以看到其详细信息,在“应用程序文件夹”中,选择“主输出……”右键选择“创建主输出……”的快捷方式,创建两个,分别重命名为适当的名称,然后将两个快捷方式分别拖到“用户的程序菜单”和“用户桌面”。 (2)解决方案资源管理器中右键选择该项目的属性,单击“系统必备”按钮,选中.Net Framework 2.0和Windows Installer 3.1 ,将.Net框架打入安装包中,以便在没有安装.Net环境的计算机中正确安装应用程序。 以上操作完成后,可以选中资源管理器中的安装和部署项目,右键选择“重新生成”,将完成打包过程。 打包完成后,到打包文件存放的目录下,可以看到打包的文件,单击exe文件进行安装测试。安装完成后,在桌面和程序条中都可以看到该项目的启动入口。 三、其他说明 1、查看安装目录,可能会有源文件,解决办法就是把打包应用程序文件夹中的“源文件……”和“调试……”两个输出项目删除。 2、在打包设置中,可以设置桌面快捷方式的图标、程序条中的图标等。 3、如果没有选择“安装向导”,一些内容需要手动完成。 4.运行安装包下Debug\setup.exe即可安装. 注意:可用以上方法制作安装包(新建部署和安装项目),也可以使用另外一种方法. 即:在在已有的Winform方案中,选择项目的属性,设置”发布” 选项卡,也可完成安装包的制作.

软件发布流程

软件发布流程1目的 为了规范软件产品的版本发布过程,提高软件发布的可控性。2范围 适用于公司所有软件产品的发布。 3角色与职责 4软件发布流程 公司软件产品发布的流程如下: 1.1发布准备 软件开发完成,开发人员完成自测,并确定发布日期。 自测应当完成对以下内容的确认: 1)原有BUG是否彻底解决; 2)增加的功能,修改的功能; 3)新增功能是否达到需求及设计要求; 4)所做的改变带来的影响; 1.2提交测试 软件负责人提出测试申请,并明确以下内容: 1)软件版本号; 2)新增或修改了哪些功能;

3)修复了哪些BUG; 4)更改后的影响分析及测试建议; 1.3执行测试 测试负责人接收测试申请后,启动软件测试,完成后反馈测试结果。 测试结果应包含以下内容: 1)原有BUG的解决情况; 2)BUG的新增情况; 3)测试用例执行情况; 1.4发布评审 软件经过全面测试后,由质量部SQA负责审核并判断软件是否达到发布要求。 发布评审中对软件缺陷的要求是:致命、严重级别缺陷为0,一般级别缺陷解决率为95%,轻微级别缺陷解决率为90%。 说明: 缺陷级别划分为四级:致命、严重、一般、轻微。 1.5源码、文档入库 软件负责人安排将软件源代码及文档入库。 源码包括软件所有源代码;文档包括需求、设计、测试文档,安装手册、使用手册等。 1.6程序打包 软件负责人安排将程序打包,标记源码、文档版本tag等。 1.7编写发布说明 软件负责人安排编写产品发布说明(或者release note)。 Readme的内容应该包括 1)产品版本说明; 2)产品概要介绍; 3)本次发布包含的文件包、文档说明; 4)本次发布包含或者新增的功能特性说明; 5)遗留问题及影响说明; 6)版权声明以及其他需要说明的事项。

将两个程序打包成一个

将两个程序打包成一个 问:我有几个程序分布在客户机中,我需要增加一个模块来增加对用户的判别.用户 每次运行这个程序时都先运行这个程序.而这几个程序不是用VC开发的,所以我想 法将这些程序与我的代码打包成一个.exe文件,如何实现它? 答:1)简单的说,将老的程序作为一个二进制资源插入到你的程序中,然后先执行 你的需要,再将这个二进制资源作为一个可执行文件写到磁盘上,然后再执行这 个程序。同样的方法,你也可以加两个程序等等。 2)使用COM就可以完成,但你必须要改写主程序的InitInstance或者ExitInstance。有许多 ansi和win32函数可以独立运行你的程序。 将应用程序调用的外部数据文件集成到程序可执行文件中 我们知道,Windows应用程序中包括执行代码和程序资源两部分。例如,应用 程序的位图、图标、对话枢、字串表等都被存储在应用程序资源中。对于处在应用程序外部的多个小数据文件,一方面容易丢失从而将造成程序出错,另一方面也存在安全性和保密性不强等弊端。因此,可考虑将其集成到程序可执行文件中,这样还可以加快数据的读取速度。实现这种功能有两个关键步骤:首先,将这些文件作为程序资源放进资源文件中;然后,在程序执行数据文件加载时,从资源内存中读取这些文件。 1、将数据文件加到资源文件中 (1)首先用文本编辑器(记事中、写字板等)打开资源文件,即带有rc扩展名的 文件(注意:此处只能用文本编辑器打开,因为在VisualC++ 5。0的资源编辑器中 不支持除加速键表、位图、对话框、光标、图标、菜单、工具条、串表、版本信息等标准资源外的非标准资源的插入。为安全起见,在进行下述操作时要先备份资源文件),然后添加如下儿行代码: //////////////////////////////////////////////// ///////////////////////////////DATA IDR_DATA0 DATA DISCARDABLE "res\\data0.dat" IDR_DATA1 DATA DISCARDABLE "res\\data1.dat" IDR_DATA2 DATA DISCARDABLE "res\\data2.dat" IDR_DATA3 DATA DISCARDABLE "res\\data3.dat" 上述资源文件代码中: IDR_DATA0为数据文件的资源ID号, DATA为资源类名 ,DISCARDABLE表示该资源是可抛弃型的,而“res\\data0.dat”表示数据文件

vs2010发布、打包安装程序(超全超详细)

1、在vs2010 选择“新建项目”→“其他项目类型”→“Visual Studio Installer→ “安装项目”: 命名为:Setup1 。 这是在VS2010中将有三个文件夹, 1.“应用程序文件夹”表示要安装的应用程序需要添加的文件; 2.“用户的‘程序’菜单”表示:应用程序安装完,用户的“开始菜单”中的显示 的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe; 3.“用户桌面”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。 2、应用程序文件夹中点右键添加文件:表示添加要打包的文件;

添加的文件一般是已经编译过应用程序的debug目录下的文件; 如果debug 下面有子文件夹则需要“添加文件夹”,例如:data 然后把对应的子文件里的内容添加到此文件夹中;

把需要创建程序快捷方式的图标也添加进来:后缀名为:ico 3、在创建的项目名称(Setup1)上点击右键:属性 选择系统必备:

然后选择.NET的版本,和Windows Installer3.1(可选项) 选择:“从与我应用程序相同的位置下载系统必备组件” 这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。

VS2010发布.NET2.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”“启动条件”:

然后VS2010会创建如下文件: 在“启动条件”中, 点击“.NET Framework”在Version上面选择.NET Framework 2.0;

VS2013程序打包部署过程图解

InstallShield程序打包图解 VS2013中打包工具被看做程序集,在使用时和程序集一样被创建到程序解决方案下。需要我们做的是添加项目即可。 1、设置安装程序集 InstallShield安装完成后,执行以下步骤右键解决方案-->添加-->新建项目-->其他项目类型-->安装和部署,具体操作如下图: 2、设置程序安装信息

3、设置安装要求

4、添加程序文件(重要) 在下图中的第四步中添加程序文件时会有主输出、源文件等多个选项框,其实它的生成机制和.NET程序的编译机制是相同的。在添加了启动项的主输出后,需要将启动项程序所在的文件目录下的bin\Debug 文件中的内容全部添加进来,包括文件和文件夹(添加文件夹点击Add Folders)。 6、设计程序的快捷方式 Application Shortcuts 程序快捷打开方式,InstallShield为用户提供了两种显示形式,分别是开始菜单和桌面快捷方式。下图显示了设置的一些注意项,此阶段也可以设置程序的显示图标(需要.ico格式的图片)。

7、设置程序安装时的安装视图

8、打包安装环境 设置完上面的步骤后,我们的打包程序基本设置完成,但是在一些情况下我们往往要打包.NET环境或者其它程序运行所需要的Windows 环境,InstallShield也为我们很好的设计了环境的打包。 在选择需要打包的环境时一定要注意文件的名称,一般往往是需要直接将环境安装包放到安装exe中。选中Microsoft .NET Framework 4.5 Full然后等待VS将该环境的安装包下载到程序集文件夹中即可。另外一定要注意名称后面的(Web Download)括号的内容说明文件只是一个链接,在安装时需要网络下载才可以实现完成安装。

VS2012程序打包部署详解

VS2012程序打包部署详解 上篇博客把收费系统的总体设计进行了一遍讲解,讲解的同时掺杂了些有关.NET编译机制的总结。程序编写测试完成后接下来我们要做的是打包部署程序,但 VS2012让人心痛的是没有了打包工具。不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的。 经过翻阅资料发现,VS2012虽然没有集成打包工具,但它为我们提供了下载的端口,需要我们手动安装一个插件InstallShield。网上有很多第三方的打包工具,但为什么偏要使用微软提供的呢?因为最原始的也是最高级的,万变不离其宗。 一、.NET程序部署机制 上篇博客稍微总结了下.NET程序的编译机制,下面了解些有关程序部署的一些机制。在.NET程序包下有三个文件夹分别是bin文件、obj 文件、My Project文件,他们分别封存着程序的组成部分。 bin目录用来存放程序的编译结果,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,在编译后生成的程序文件会存放在该目录下。当然我们也可以手动修改程序的输出路径,修改方法:项目属性—>配置属性—>输出路径来修改。 obj目录是用来保存每个模块的编译结果,用来放置程序生成时的

中间文件。程序不会直接生成出可用的文件,而是由源程序生成中间文件,再编译中间文件生成可执行文件的。在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。 My Project目录定义你程序集的属性,被称为项目属性文件夹。目录下的AssemblyInfo类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。 在程序编译生成后,程序的源文件就不在重要了,重要的是DLL、EXE、Config等的程序的组件,有了程序的组件程序就能够正常运行。所以在发布制作安装程序时我们只需要将程序的组件打包即可。 二、InstallShield程序打包图解 VS2012中打包工具被看做程序集,在使用时和程序集一样被创建到程序解决方案下。需要我们做的是添加项目即可。但是对于初次使用的朋友来说,我们需要根据提示一步步的先下载安装该打包工具。具体的安装方法不再详述,网上资料很多。 1、设置安装程序集 InstallShield安装完成后,执行以下步骤右键解决方案-->添加-->新建项目-->其他项目类型-->安装和部署,具体操作如下图:

C#打包应用程序图教程

详解C#打包应用程序图教程 本文详细和大家讲一下打包部署仅仅为基础的打包方案,打包附加.netframework包的操作仅在Visual Studio2005以及以上版本才有效,VS2003的话需要下载一个PluginInstaller.msi 插件包。 下面开始吧。 第一步:新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定.(详细见下图) 第二步:安装向导 关闭后打开安装向导,点击下一步,或者直接点击完成.

如下图:

第三步:开始制作安装向导完成后即可进入项目文件夹:

双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来. PS:在这里,有很多朋友问我,什么是应用程序的可执行文件和相应的类库和组件,在这里我解释一下,应用程序的可执行文件即是你建立的winform应用程序项目最终生成的EXE可执行文件,而相应的类库则是执行这个EXE文件所有需要的非操作系统dll文件,在这里只要将E XE文件选中添加,VS会自动将其用到的DLL文件添加.(这里你可以将应用程序项目中生成方式选择Release,然后生成,将bin/Release文件夹下的文件按结构添加进来即可)

然后右击你的可执行文件,创建快捷方式,然后把快捷方式分别剪切或复制到左边的"用户的'程序'菜单"和"用户桌面"中. 这样安装程序安装安装完成后会在"开始->所有程序"和"桌面"上生成程序的快捷方式. 然后右击左边的"应用程序文件夹"打开属性对话框:

VS2010 (C#)winform程序打包发布图解

VS2010 (C#)winform程序打包发布图解 1、新建一个Windows窗体应用程序,例如项目名为monitor,功能略。新建的时候不要忘了创建解决方案。 2、在monitor解决方案上“右击”——“添加”——“新建项目”,选择“其他类型项目”——“安装和部署”——“安装项目”,并命名为“Setupmonitor”, 确定后显示如下图所示 3、添加必须文件: 在'应用程序文件夹'上右键,添加应用程序必须的配置文件(如果有的话),以及图标(桌面显示的图标,卸载程序的图标...).还需要添加一个系统的exe文件msiexec.exe(一般在c:\WINNT\System32目录下),用于卸载程序. (1)在左边的“应用程序文件夹”上右击“添加”——“项目输出”,选择monitor项目 (2)在左边的“应用程序文件夹”上右击“添加”——“文件”,选择“c:"windows"system32"msiexec.exe”文件。 (3)在左边的“应用程序文件夹”上右击“添加”——“文件”,然后选择几个*.ico的图标文件 完后显示如下 4、创建快捷方式 (1)”的快捷方式“,命名为startmonitor,并在其的属性栏中为其“Icon”选择刚才导入的图标。并将其拖动到“用户的”程序”菜单”文件下。 (2)桌面快捷方式:步骤同1。将其拖动到“用户桌面”下 (3)卸载快捷方式:在msiexec.exe上右击“创建msiexec.exe 的快捷方式”,并命名为“卸载monitor”。将其拖动到“用户的”程序”菜单”文件下,当然也可放在桌面。 查看SetupMonitor部署项目属性, 属性值中有“{4EA38E9B-C4BF-4897-B095-E30160A27245}”类似字样,选中它“复制”。 再次点击你的卸载快捷方式名称,“卸载monitor”,再到右下角属性栏中,有一个叫Arguments 的属性栏,在属性栏中首先填入“/x”后加一个空格,再“粘贴”,将ProductCode的属性值COPY 至此。 5、打包.net framework 选择Setupmonitor项目的属性,在对话框中选择“系统必备”,然后在弹出的对话框中选择“从与我的应用程序相同的位置下载系统必备组件”,确定。 6、生成

(完整版)VB_6.0的打包与发布

附录打包和发布应用程序 在创建Visual Basic 应用程序后,您可能希望将该程序发布给其他人。您可以将使用Visual Basic 创建的任何应用程序自由地发布给使用Microsoft Windows 的任何人。可以通过磁盘、CD、网络、或者intranet 以及Internet这些途径来发布应用程序。 下面以实例57为例介绍打包和展开应用程序。 一、使用向导进行打包 1.启动打包和展开向导 Visual Basic 的打包和展开向导使您能够轻松地为应用程序创建必需的.cab文件以及安装程序。与其它向导一样,打包和展开向导将提示您输入相应信息,以便创建您所需要的准确配置。 要从Visual Basic 中启动打包和展开向导,请按照以下步骤执行: (1)打开想要使用向导来打包或展开的工程。注意如果您正在使用一个工程组,或已加载了多个工程,则在启动该向导之前,请确保当前的工程就是您要打包或展开的工程。 (2)如果必要,请使用“外接程序管理器”来加载打包和展开向导:从“外接程序”菜单中选择“外接程序管理器”,从该列表中选择“打包和展开向导”,然后单击“确定”,如图1所示。 图1 外接程序管理器 (3)从“外接程序”菜单中选择“打包和展开向导”来启动该向导,如图2所示。 打包和展开向导提供了三个选项: “打包”选项帮助您将一个工程的文件打包为一个可以展开的.cab 文件,而且在某些情况下还要创建一个安装程序来安装该.cab 文件。向导确定需要打包的文件,并引导您作出所必需的选择,以便为您的工程创建一个或多个 .cab 文件。

“展开”选项帮助您将打好包的应用程序传送到适当的发布媒体,例如软盘、网络共享、或Web 站点。 “管理脚本”选项让您可以查看和操作以前使用打包和展开向导时所保存的脚本。每次使用该向导时,都会保存一个包含您所做的所有选择的脚本。在以后的过程中,如果您想使用相似的设置值以及做出与原来相同的选择,就可以重新使用这些脚本。 图2 打包和展开向导 注意:打包和展开向导只能为Visual Basic 应用程序创建安装程序和发布媒体。如果要为其它基于Windows 的应用程序创建安装程序,请使用与相应的开发产品一起提供的安装工具包或在Windows SDK 中提供的安装工具包。 2.使用向导为应用程序打包 为应用程序打包是指创建一个软件包的操作,该软件包可以将您的应用程序安装到用户的计算机上。软件包由一个或多个.cab 文件组成,文件中包含了用户安装和运行应用程序所需的被压缩的工程文件和任何其它必需的文件。这些文件可能包括安装程序、辅助的.cab 文件或其它必需的文件。这些附加的文件根据您创建的软件包类型不同而不同。 具体过程如下: (1)启动“打包和展开向导”,在“打包和展开向导”窗口中单击“打包”。 (2)在接下来的对话框中视具体情况选择“是”或“否”,在这里我们选择“是”,如图3所示。 图3 是否进行重新编译

软件发布流程

软件发布流程 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

软件发布流程1目的 为了规范软件产品的版本发布过程,提高软件发布的可控性。 2范围 适用于公司所有软件产品的发布。 3角色与职责 4软件发布流程 公司软件产品发布的流程如下: 1.1发布准备 软件开发完成,开发人员完成自测,并确定发布日期。 自测应当完成对以下内容的确认: 1)原有BUG是否彻底解决; 2)增加的功能,修改的功能; 3)新增功能是否达到需求及设计要求; 4)所做的改变带来的影响; 1.2提交测试

软件负责人提出测试申请,并明确以下内容: 1)软件版本号; 2)新增或修改了哪些功能; 3)修复了哪些BUG; 4)更改后的影响分析及测试建议; 1.3执行测试 测试负责人接收测试申请后,启动软件测试,完成后反馈测试结果。 测试结果应包含以下内容: 1)原有BUG的解决情况; 2)BUG的新增情况; 3)测试用例执行情况; 1.4发布评审 软件经过全面测试后,由质量部SQA负责审核并判断软件是否达到发布要求。 发布评审中对软件缺陷的要求是:致命、严重级别缺陷为0,一般级别缺陷解决率为95%,轻微级别缺陷解决率为90%。 说明: 缺陷级别划分为四级:致命、严重、一般、轻微。 1.5源码、文档入库 软件负责人安排将软件源代码及文档入库。 源码包括软件所有源代码;文档包括需求、设计、测试文档,安装手册、使用手册等。 1.6程序打包

软件负责人安排将程序打包,标记源码、文档版本tag等。 1.7编写发布说明 软件负责人安排编写产品发布说明(或者release note)。 Readme的内容应该包括 1)产品版本说明; 2)产品概要介绍; 3)本次发布包含的文件包、文档说明; 4)本次发布包含或者新增的功能特性说明; 5)遗留问题及影响说明; 6)版权声明以及其他需要说明的事项。 1.8正式发布通知 软件负责人通知研发、市场、销售各相关部门并附上产品发布说明和产品介绍。

VS2010中程序打包封装步骤(详细图文)

VS2010中程序打包封装步骤【图解】 因为学习的要求,我需要把自己的程序进行打包封装,开始也是苦恼,没有找到很好的办法,但并没有放弃,终于发现了一个差不多的文章,于是摸索着进行,可喜的是是成功了,下面和大家分享一下。 第一步:前提是你已经将程序编辑好了,就差这一步了,文件—添加—新建项目。如图: 第二步:已经打开添加新项目窗体中选择其他项目类型—安装和和部署,接下里按着如图选择。Ps:据说installshield le这个也可是使用,我也试了,

全是英文的,意识看不懂,可能也是因为看不懂才没有成功吧,我感觉比较麻烦,想学习的话,就自己摸索一下吧。 第三步:此时,你已经开始进入创建界面了,这里有关于stup安装文件属性的更改,你可以摸索一下,这里我就不一一解释了,如图进行选择。

第四步:这里选择添加文件。将你你已经生成并运行的程序找到如标记文件夹下的文件,全部添加进去,包括数据库,配置文件等内容。 第五步:这里值得一提,此标记是默认安装路径,你可以更改。如"D:\",这样开始默认就在D盘了。

第六步:在进行此步之前,你还有做些工作,就是有关快捷方式的生成,单击你程序主文件.exe格式,创建快捷方式,之后你可以对名称进行更改,在属性里的ico可以添加图标,之后剪切到用的"程序"菜单,因为只能剪切,不知道微软在这里为什么没给复制(我没发现复制,你们知道了可以告诉我),所以以同样的方式,还要将快捷方式粘贴到用户桌面。这样在桌面和启动菜单都有快捷方式了。下面该说第六步操作了,单击setup1属性,进入关键地方了。 第七步:选择系统必备查看,必备控件。

Windows应用程序打包与部署

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. Windows应用程序打包与部署 WinForms应用程序完成之后,会将所有程序打包并且制作成安装程序以便用户在使用过程中可以方便的将应用程序部署到计算机上。应用程序的打包和安装过程比较简单,本章通过详细的文字讲解如何对应用程序进行打包与安装,通过本章的学习,读者能够学到以下内容。 了解Windows Installer概述。 Windows应用程序部署。 为Windows安装程序添加快捷方式。 为Windows安装程序创建文件关联。 为Windows安装程序添加注册表项。 安装及卸载Windows程序。 633

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 24.1 Windows Installer简介 Windows Installer基于数据驱动模型,该模型在一个软件包中提供所有安装的数据和指令。相比而言,传统的脚本安装程序基于过程模型,为应用程序安装提供脚本指令。脚本安装程序强调“如何”安装;Windows Installer则强调安装“什么”。 利用Windows Installer每台计算机都保留一个信息数据库,其中的信息与它所安装的每个应用程序有关,包括文件、注册表项和组件。卸载应用程序时,将检查数据库以确保在移除该应用程序前没有其他应用程序依赖于文件、注册表项或组件。这样可防止在移除一个应用程序后中断另一个应用程序。Windows Installer还支持自我修复,即应用程序能够自动重新安装因用户误删除而丢失的文件。 另外,Windows Installer提供回滚安装的能力。例如,如果应用程序依赖于某个特定的数据库,但在安装过程中未找到该数据库,则可以中止安装,计算机则返回到安装前的状态。Visual Studio 2008中的部署工具建立在Windows Installer的基础之上,可以迅速部署和维护使用Visual Studio 2008生成的应用程序。Windows Installer 3.5可以安装和管理公共语言运行库程序集。开发人员可以将程序集安装到全局程序集的缓存中,或者安装到为特定应用程序隔离的位置上。这种隔离应用程序的改进功能是.NET Framework的一个重要部分。 24.2 Windows应用程序部署 前面已经对Windows Installer工具做了简单介绍,下面演示如何为Windows应用程序创建一个安装程序,其中包括设置快捷方式、文件关联、添加注册表项、显示自定义对话框以及检查Internet Explorer的版本。 634

Python程序打包

Python程序打包 Python程序打包工具 Python是一个脚本语言,被解释器解释执行。它的发布方式: .py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库。(Python官方的各种安装包就是这样做的)。 ?.pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。 ?可执行文件:对于非码农用户或者一些小白用户,你让他装个Python同时还要折腾一堆依赖库,那简直是个灾难。对于此类用户,最简单的方式就是提供一个可执行文件,只需要把用法告诉他即可。比较麻烦的是需要针对不同平台需要打包不同的可执行文件(Windows, Linux, Mac,...)。 .py和.pyc都比较简单,Python本身就可以搞定。将Python脚本打包成可执行文件有多种方式。 各种打包工具的对比如下 Solution Windows Linux OS X Python 3 One file mode Zipfile import Eggs pkg_resources support bbFreeze yes yes yes no no yes yes yes py2exe yes no no yes yes yes no no pyInstaller yes yes yes no yes no yes no cx_Freeze yes yes yes yes no yes yes no py2app no no yes yes no yes yes yes 其中pyInstaller和cx_Freeze都是不错的,stackoverflow上也有人建议用cx_Freeze,说是更便捷些。pkg_resources新版的pyInstaller貌似是支持的。

C#程序打包与部署

C#程序打包与部署,包括处理安装向导中用户输入的参数,创建卸载程序。 2010-05-1922:50501人阅读评论(2)收藏举报 一).创建部署项目 1.在“文件”菜单上指向“添加项目”,然后选择“新建项目”。 2.在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”。在“名称”框中键入setup1。 3.单击“确定”关闭对话框。 4.项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。 5.在“属性”窗口中,选择ProductName属性,并键入信息管理系统。 二).将主程序项目的输出添加到部署项目中 1.在“文件系统编辑器”中,选择“应用程序文件夹”。在“操作”菜单上,指向“添加”,然后选择“项目输出”。 2.在“添加项目输出组”对话框中,选择“项目”下拉列表中的“你的程序”。 3.单击“确定”关闭对话框。 4.从列表中选择“主输出”和“内容文件”组,然后单击“确定”。 三).创建安装程序类 1.在“文件”菜单上指向“新建”,然后选择“项目”。 2.在“新建项目”对话框中,选择“项目类型”窗格中的“C#项目”,然后选择“模板”窗格中的“类库”。在“名称”框中键入installDB。 3.单击“打开”关闭对话框。 4.从“项目”菜单中选择“添加新项”。 5.在“添加新项”对话框中选择“安装程序类”。在“名称”框中键入installDB。 6.单击“确定”关闭对话框。 7.详细代码附后。 四).创建自定义安装对话框 1.在解决方案资源管理器中选择“setup1”项目。在“视图”菜单上指向“编辑器”,然后选择“用户界面”。 2.在用户界面编辑器中,选择“安装”下的“启动”节点。在“操作”菜单上,选择“添加对话框”。 3.在“添加对话框”对话框中,选择“许可协议”对话框,然后单击“确定”关闭对话框。

vs2010程序打包

VS2010程序打包 一、新建一个Windows窗体应用程序,例如项目名为monitor,功能略。新建的时候不要忘了创建解决方案。 二、在monitor解决方案上“右击”——“添加”——“新建项目”,选择“其他类型项目”——“安装和部署”——“安装项目”,并命名为“Setup monitor”, 确定后显示如下图所示

三、添加必须文件: 在'应用程序文件夹'上右键,添加应用程序必须的配置文件(如果有的话),以及图标(桌面显示的图标,卸载程序的图标...).还需要添加一个系统的exe文件 msiexec.exe(一般在c:\WINNT\System32目录下),用于卸载程序. 1、在左边的“应用程序文件夹”上右击“添加”——“项目输出”,选择monitor项目 2、在左边的“应用程序文件夹”上右击“添加”——“文件”,选择“c:"windows"system32"msiexec.exe”文件。 3、在左边的“应用程序文件夹”上右击“添加”——“文件”,然后选择几个*.ico的图标文件 完后显示如下 四、创建快捷方式 1、开始菜单快捷方式:在“主输出来自monitor (活动)”上右击“创建”主输出来自monitor (活动)”的快捷方式“,命名为startmonitor,并在其的属性栏中为其“Icon”选择刚才导入的图标。并将其拖动到“用户的”程序”菜单”文件下。 2、桌面快捷方式:步骤同1。将其拖动到“用户桌面”下 3、卸载快捷方式:在msiexec.exe上右击“创建msiexec.exe 的快捷方式”,并命名为“卸载monitor”。将其拖动到“用户的”程序”菜单”文件下,当然也可放在桌面。 查看SetupMonitor部署项目属性,

VS2010 (C#)winform程序打包发布图解==

1、新建一个Windows窗体应用程序,例如项目名为monitor,功能略。新建的时候不要忘了创建解决方案。 2、在monitor解决方案上“右击”——“添加”——“新建项目”,选择“其他类型项目”——“安装和部署”——“安装项目”,并命名为“Setupmonitor”, 确定后显示如下图所示

3、添加必须文件: 在'应用程序文件夹'上右键,添加应用程序必须的配置文件(如果有的话),以及图标(桌面显示的图标,卸载程序的图标...).还需要添加一个系统的exe文件msiexec.exe(一般在c:\WINNT\System32目录下),用于卸载程序. (1)在左边的“应用程序文件夹”上右击“添加”——“项目输出”,选择monitor项目 (2)在左边的“应用程序文件夹”上右击“添加”——“文件”,选择“c:"windows"system32"msiexec.exe”文件。 (3)在左边的“应用程序文件夹”上右击“添加”——“文件”,然后选择几个*.ico的图标文件 完后显示如下 4、创建快捷方式 (1)”的快捷方式“,命名为startmonitor,并在其的属性栏中为其“Icon”选择刚才导入的图标。并将其拖动到“用户的”程序”菜单”文件下。 (2)桌面快捷方式:步骤同1。将其拖动到“用户桌面”下 (3)卸载快捷方式:在msiexec.exe上右击“创建msiexec.exe 的快捷方式”,并命名为“卸载monitor”。将其拖动到“用户的”程序”菜单”文件下,当然也可放在桌面。 查看SetupMonitor部署项目属性,

属性值中有“{4EA38E9B-C4BF-4897-B095-E30160A27245}”类似字样,选中它“复制”。 再次点击你的卸载快捷方式名称,“卸载monitor”,再到右下角属性栏中,有一个叫Arguments的属性栏,在属性栏中首先填入“/x”后加一个空格,再“粘贴”,将ProductCode的属性值COPY至此。 5、打包.net framework 选择Setupmonitor项目的属性,在对话框中选择“系统必备”,然后在弹出的对话框中选择“从与我的应用程序相同的位置下载系统必备组件”,确定。 6、生成 在Setupmonitor项目上右击选择“生成”,则打包成功,将在你的解决方案文件夹生成一个Setupmonitor的文件夹,安装文件就在此目录下。 ------------------------------华丽的分割线 1 新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。 2 安装向导 关闭后打开安装向导,点击下一步,或者直接点击完成。 3 开始制作 安装向导完成后即可进入项目文件夹: 双击"应用程序文件夹"在右边的空白处右击,选择添加->文件,将你的做的应用程序的可执行文件和相应的类库和组件添加进来。

vs2010打包winform安装程序

打包过程vs2010(包含卸载功能): 1、添加安装和部署。 首先打开一个要进行打包的项目的设计界面,然后点击vs上的“文件”→“添加”→“新建项目”→“已安装的模板”→“其他项目类型”→“安装和部署”→“Visual Studio Installer”→“安装项目”。 然后为安装项目起一个名称,再选择一个安装位置,如图: 最后点击确定。如图:

2、配置应用程序文件夹 选中应用程序文件夹,在右边空白位置右键“添加”→“项目输出”→“主输出”,如图: 最后点击“确定”,如图:

如果程序中用到了外部的文件,那么可以继续操作:右键“添加”→“文件”,选择要添加的文件,如图: 现在应用程序文件夹部分就处理完了。 3、创建快捷方式

快键方式可以创建两个:“开始”菜单一个,桌面一个 1)、创建“开始”菜单中的快捷方式: 点击中的‘用户的“程序”菜单’,在右面空白处右键 “添加”→“创建新的快捷方式”,然后选择“应用程序文件夹”下的程序的exe文件,如图: 然后给快捷方式起名, 再设置快捷图标, 右键新创建的快捷方式的名称,打开“属性窗口”,通过Icon属性设置快捷方式的图标,如图:

2)、创建桌面的快捷方式图标: 过程同创建“开始”菜单中的快捷方式一样 4、更改默认安装目录: 右键“应用程序文件夹”→“属性窗口”里的“DefaultLocation”属性可以更改默认的安装目录, 改前: 改后: 5、打包时,如果需要把对应的.NET Framework 打到安装包中,此时促进行如下操作:右键安装项目名→“属性”→“系统必备”,勾选对应的系统必备组件 然后指定系统必备组件的安装位置, 注:如果选“从组件供应商的网站上下载系统必备组件”(安装客户端时,pc机需联网)如果选“从我的应用程序相同的位置下载系统必备组件”,那么打包时将会从程序中把组件打进去 (安装客户端时,pc机无需联网——推荐)

自定义包中Java程序打包方法

自定义包中JAVA程序的打包方法本想将自己写的保存在DesignPackage包中的java程序打包,在网上搜了半天,只找到了将保存在默认包中的java程序打包的方法,而这个方法又不能解决我的问题。经过本人的反复实验,终于找到一个比较可行的方法。现与大家分享一下。 以包Package下的java源代码、带有Teacher.dat文件的应用程序为例说明。若读者的包和主类名和本例的不同,则需要在以下涉及包名和主类名的地方做适当的修改。 1、先在电脑上的任意位置建一个文件夹,名字任意。此处在D盘下建一个名为java的文件夹。 2、再在java文件夹下建一个名为Package的文件夹,并将所写的.java程序经编译生成的.class文件放到文件夹Package里,将数据文件Teacher.dat放到文件夹java里(此时Teacher.dat和Package文件夹同目录)。 3、打开控制台窗口(在“开始”的搜索中输入cmd,然后按Enter键即可),进入Teacher.dat所在的目录,此处是D:\java。 4、在打包前还要添加一个文件manifest.mf。该文件的添加步骤如下:先建一个txt文档,在里边输入Main-class: yyyyy/xxxx。其中yyyy是包名,xxxx是主类名,且yyyy和Main-class:之间有一个空格,xxxx后要加一个换行符(按Enter键即可)。关闭该文档后将本文档的名称及后缀都修改,成为manifest.mf。 5、在控制台中输入命令jar cvfm yyyy/xxxxx.jar manifest.mf .

其中yyyy是包名,xxxx是主类名。Jar、cvfm、yyyy/xxxx.jar和manifest.mf之间都有一个空格,且manifest.mf后面要加一个空格和一个点(.)。 6、最后要保证打成的包xxxx.jar和Teacher.dat文件处于同一个目录下,这样才能通过双击所打的包xxxx.jar运行程序。 如有错误还请大家指正啊! QQ:1109178567

VC C++程序打包详细教程

VC C++程序打包过程 一、打包软件前的准备工作 1、VC2010专业版软件 2、Depends软件(https://www.doczj.com/doc/055274172.html,/【用途是检测软件的依赖dll文件】) 3、要打包的C++程序 二、准备软件所需要的东西 1、首先打开depends.exe的程序,找到菜单中的file—>open 找到 用C++编写,使用VC2010运行后的可执行文件(一般文件在debug或者是release 文件夹下,需要注意的是,使用depends所找到的文件对于在VC下debug和release 运行时所找到的所需文件是不一样的)

2、例如我上面用VC在debug平台下运行所需要的dll文件,这些文件文件的所需路径 上图有显示,下面要做的是在所对应的文件夹下找出所需要的文件,然后放入到统一的文件夹中,后面会用得到。 三、软件的打包过程 1、运行VC软件,文件→新建→项目,在已安装的模板中找到找到安装和部署,选择 visual studio installer→双击安装项目→找到解决方案资源管理器→找到项目(994test)→单击属性属性窗口→在公司名称中添加自己信息(公司的英文简称)→把Removepreviousversions的属性设置为true.

2、然后找到文件系统,添加system文件夹,双击system文件夹在右边的,单击鼠标 右键,在鼠标弹出来的添加菜单中选择文件。在弹出的选择对话框中添加软件运行时所需要的dll文件。也就是前面说的用depends程序找到的dll文件。添加dll文件完毕后,右键dll文件,在弹出的对话框中选择属性窗口中分别把register、sharedlegacyfile改成vsdrfCOM和true选项。

相关主题
文本预览
相关文档 最新文档