转自 http://www.cnblogs.com/wenlin1234/archive/2008/01/16/798737.html
1.在机器上安装PluginInstaller.msi,安装完后编译打包项目可以将.NET Frameworkt 和 语言包打到安装包中.可
以从http://www.microsoft.com/downloads/details.aspx?FamilyID=627921a0-d9e7-43d6-a293
-
72f9c370bd19&DisplayLang=zh-cn上下载该文件.
2.创建一个安装项目 文件->新建->项目->安装和部署项目->安装项目 名为"Setup"
3.在解决方案资源管理器中的解决方案"Setup"上右键->添加->现有项目->添加你的项目,
4.在Setup上右键->添加->项目输出->主输出 这样会自动的把项目需要的基本文件添加到应用程序文件夹中,然后在应用程序文件夹添加你在程序中所需要的图片,应用程序等文件.
5.然后按照如下操作来添加模块
(1)一般会自动将依赖项添加到“检测到的依赖项”,如果没有,那么我们要手动将其加入4)
Crystal_Managed2003.msm (如果有水晶报表)
dotnetfxredist_x86.msm (.net一定是必须的)//默认不用.
... (如果有引用其他的dll)
(2)手动加入要包含的文件:项目-->添加-->合并模块(添加你的程序文件) (包括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
(如果报表文件使用了 ADO.NET 的 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
(很多人经常出现查询错误,不妨加上这个)
(3)打开解决方案-->右键点击Crystal_regwiz2003.msm的属性,在“MergeMouduleProperties”里的“License
Key”填入密码(这个是你生成Crystal Report是用到的注册号的密码!)
6.卸载有两种方法
(1)自己编一个卸载程序,代码如下:
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
System.Diagnostics.Process.Start("msiexec","/X{C4A3986F-EA12-4194-BB8B-
A9777E78A6ED}");
Application.Exit();
//Application.Run(new Form1());
}
//{C4A3986F-EA12-4194-BB8B-A9777E78A6ED}为安装程序的ProductCode.
然后将可执行文件加入到应用程序文件夹中,在卸载项上指向它即可.
(2)在打包项目中应用程序文件夹中添加文件c:\windows\system32\msiexec.exe。
创建此程序的快捷方式,改此快捷方式Argmuments为“/x {产品ID}”,产品ID的值为打包项目的ProductCode属性
值,如: /x {C4A3986F-EA12-4194-BB8B-A9777E78A6ED}。
注意是安装程序的ProductCode,而非目标程序的, ProductCode在项目文件中可以找到。
在系统有问题的操作系统上有时候卸载不了.
7.Setup部署项目属性中的manufacture,productname决定安装的路径名.如C:\Program
Files\manufacture\productname
8.生成解决方案(或直接按Ctrl+Shift+B)
其更全的操作请到如下查看:
http://www.microsoft.com/china/MSDN/library/netFramework/netframework/VCSdnnetdepvsredistdeploy.mspx
?mfr=true
http://www.java-asp.net/aspnet/200601/t_49903.html
部署.net平台的程序
郑 佐2005-5-31
部署用.net写的程序时客户系统需要安装对应版本的.net Framework,而VS.NET自带的安装程序项目没
有提供一起打包框架的功能,这一点让许多开发者觉得不爽,在csdn论坛上也有人提及如何方便的把.net程序部署
到没有安装框架的windows系统上。几个月前下载了MicrosoftVisual Studio .NET 2003 引导程序插件(其实这个
微软早在2003年底已经提供了,但是我一直没有发现)。前段时间把这个插件安装了一下,发现vs.net 2003的菜单
和工具栏里面都没有找到对应的命令,觉得很奇怪,因为像WMI的vs.net2003插件安装上后在服务器资源管理器里
面就会显示,所以一直以为有问题,后来也就没有去关心它。
上个月,我手上刚好有一个.net应用程序完成需要打包,结果惊奇的发现在安装文件的同级目录下一下子多出了好
几个文件,终于明白是怎么一回事了。
下面是编译后的文件列表:
Config.ini --安装配置文件
DotmanagementServer Installer.msi --msi安装程序
dotnetfx.exe --.net1.1 framework
langpack.exe --语言包
Settings.ini --设置文件
Setup.exe --主安装程序
Config.ini文件的内容如下:
[config.ini]
IDS_NOT_SINGLE_INSTANCE=已有另一版本的安装程序正在运行。 该应用程序一次只能运行一个版本。
IDS_DIALOG_CAPTION=%s安装
IDS_SINGLE_INSTANCE_FAIL=CreateMutex无法对单个的实例检查分配句柄。
IDS_SETUP_FAILURE=%s安装失败。如果问题继续存在,请与产品支持人员联系。
IDS_DEFAULT_PRODUCTNAME=应用程序
IDS_SETTINGS_INIT_FAILURE=安装设置文件'%s'在解析时出错,或者无法定位该文件。
IDS_CREATE_PROCESS_FAILURE=下列命令行的 CreateProcess 操作失败: %s 。
IDS_INSUFFICIENT_PRIVILEGES=运行 %s 安装程序要求具有本地系统管理员的权限。安装程序现在退出。
IDS_DIALOG_TEXT=单击“确定”开始安装 %1 。单击“取消”退出安装。
IDS_ERROR_CAPTION=%s安装错误
IDS_VERSION_DETECT_FAILED=%1的版本检测失败。请确保安装程序存在于指定位置。%n%n返回消息: %2
IDS_MSI_NOT_FOUND=无法定位产品安装程序'%s'。安装程序现在退出。
IDS_REBOOT_QUERY=安装完成。现在重启吗?
IDS_SETUP_SUCCEEDED=安装成功。
IDS_INVALID_LANGID_CAPTION=无效的语言包代码
IDS_FX_NOT_FOUND=无法定位 .NET framework exe 文件'%s'。安装程序现在退出。
IDS_INVALID_LANGID_MESSAGE=语言包代码 %s 无效。跳过...
IDS_LANGPACK_NOT_FOUND=无法定位语言包 %s。安装程序现在退出。
IDS_MDAC_NOT_FOUND=无法定位 MDAC exe 文件'%s'。安装程序现在退出。
IDS_FILE_NOT_FOUND=无法定位'%1'。安装程序现在退出。
Settings.ini文件内容如下:
[Bootstrap]
MsiPath=DotmanagementServerInstaller.msi
ProductName=服务聚合处理管理系统
MdacVersion=2.71
BootstrapFx=true
FxInstallerPath=
LanguageID=2052
BootstrapLangPack=true
LangPackInstallerPath=
BootstrapMdac=false
我在微软的VirtualPC 上的windows2000中对该程序进行了部署,整个安装过程如下:
点击安装程序 > 提示确定开始安装,取消推出安装 > 系统没有安装.net Framewrok提示是否希望安装
Mircrosoft .NET Framework 1.1软件包 > 没有安装IE 5.01或更高版本提示先安装IE高版本 > .NET Framework
1.1安装 > 提示安装Microsoft .NET Framework语言套件 > 安装应用程序向导 > 提示安装成功。
点击程序运行,一切象预想的那样。相信许多人已经在使用了,但更多人可能没有用过这个傻瓜式的插件。
网上在.net程序部署方面有许多相关的文章,下面几篇我认为是比较好的:
自定义 MSI 安装
http://www.microsoft.com/china/msdn/library/langtool/vsdotnet/usvs04j7.mspx
把.NET程序部署到没有安装.NETFramework的机器上
http://www.microsoft.com/China/Community/program/originalarticles/TechDoc/deployNETApp.mspx
部署ASP.NET的三大技术
http://tech.ccidnet.com/pub/article/c295_a68309_p1.html
使用 Visual Studio .NET 重新分发 .NET 框架
http://www.microsoft.com/china/msdn/library/netFramework/netframework/VCSdnnetdepvsredistdeploy.mspx
部署程序集
http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/misbasicinstincts.mspx
在VS.NET中通过Setup andDeployment Projects来制作自己的安装程序的示例:
http://msdn.microsoft.com/library/en-us/vsintro7/html/vbconDeploymentScenarios.asp
相关推荐
以下是对“C#打包成exe文件工具”这一主题的详细说明: 首先,理解C#程序的编译过程至关重要。C#源代码(.cs文件)通过Microsoft的C#编译器(csc.exe)转换成中间语言(IL),然后通过.NET框架的Just-In-Time(JIT...
通过以上步骤,你将能够熟练地使用C#打包应用程序。无论是简单的控制台工具还是复杂的桌面应用,都能够以专业的方式呈现给用户。不断实践和学习,你将更加精通这一过程,为用户提供更加顺畅的使用体验。
C#打包应用程序(安装程序) 在 C# 中,打包应用程序是将 WinForm 程序发布到用户的计算机上的一种方式。下面将详细介绍如何使用 Visual Studio 中的安装项目来打包应用程序。 Step 1: 添加新的安装项目 在解决...
C# 打包成 exe 安装文件 知识点 1:Visual Studio 2005 中的安装项目 在 Visual Studio 2005 中,可以使用安装项目将 C# 程序打包成exe安装文件。安装项目可以将程序文件、配置文件、图标等资源打包到一个安装文件...
标题提到的“C#打包需要的卸载文件”,指的是在C#应用程序打包过程中,确保包含必要的卸载功能的相关文件。下面我们将详细讨论这个主题。 首先,当我们谈论C#应用的打包,我们是指将源代码、依赖项和资源文件整合成...
然而,一个重要的环节往往被新手忽视,那就是如何将辛苦开发的C#应用转化为可分发的安装包,即如何进行C#打包制作安装项目。以下是对这一过程的详细解析,基于提供的文件信息。 ### C#打包exe可执行文件及制作安装...
C#打包应用程序是一项基础但至关重要的任务,它涉及到将你的C#项目转换成一个可分发的安装包,以便用户可以在他们的计算机上轻松安装和运行。本文将详细介绍如何使用Visual Studio(以VS2005及以上版本为例)进行C#...
### C# 打包制作安装程序详解 #### 一、创建安装向导项目或安装部署项目 在开发基于C#的应用程序时,为了方便用户安装应用程序,通常会为应用程序创建一个安装程序。这一过程可以通过Visual Studio等IDE工具来实现...
C#打包步骤详解知识点: 1. 创建安装向导项目或安装部署项目 在Visual Studio中创建一个新的安装部署项目是打包C#程序的第一步。需要进入新建项目界面,选择“其他项目类型”下的“安装与部署”类别,并从中选择...
C#打包zip文件可以调用现成的第三方dll,事半功倍,而且该dll完全免费,下载地址:SharpZipLib 下载完解压缩后,把 ICSharpCode.SharpZipLib.dll 拷贝到当前项目的目录下(如果偷懒的话,可以直接拷贝到当前项目的...
Advanced Installer是一款强大的C#打包工具,它专为.NET开发者设计,能帮助他们快速、高效地创建符合Microsoft Windows Installer标准的安装包。本文将详细介绍Advanced Installer 11版本的功能特性及其使用方法。 ...
标签“C#打包工具”进一步明确了这款工具是针对C#开发者的,它能处理C#应用程序的所有依赖,确保在目标计算机上能够顺利运行。在.NET框架环境下,这些工具能够正确处理程序集的依赖关系,包括对.NET Framework版本的...
主要介绍了C#打包成安装文件的 很不错的 很实用的 打包完你的原代码别人就不知道了
C#打包应用程序和安装卸载程序制作 以下是对C#打包应用程序和安装卸载程序制作的详细讲解: 一、创建安装部署项目 首先,打开Visual Studio,点击新建项目,选择“其他项目类型”->“安装与部署”->“安装向导”...
标题中的"C#打包程序"指的是使用C#编程语言来创建一个程序打包过程,这通常是为了制作安装包,使得用户能够方便地安装和卸载应用程序。在Windows环境下,开发者经常使用Visual Studio(这里是VS2010)来完成这个任务...
下面我们将深入探讨C#打包过程中涉及的关键知识点。 一、编译与构建 C#的编译过程由Visual Studio或命令行工具如dotnet CLI执行。源代码(.cs文件)被编译成中间语言(IL),这是一种平台无关的代码表示。然后,...
C#程序打包成EXE文件的工具。 可以把C#工程转成可以直接运行的EXE文件,使用时把你C#工程中的bin\debug文件夹下面的文件导入,然后生成exe文件即可,生成的文件会遭到杀毒软件报警,提醒用户,在杀毒...C#打包EXE 工具
"C#打包编程"是其中的一个重要概念,它涉及到如何将程序的所有依赖项和资源整合成一个可执行文件或安装包,以便用户可以方便地安装和运行。 标题"C#打包编程 打包编程实现"指的是使用C#语言进行程序打包的过程和...