c#.net 做的应用程序怎么分步打包。顶者有分。 比如说:整个解决方案里面有5个项目.我想打成一个安装包。在安装的时候,可以选择在这台机器上安装那个项目。(5个项目选择其中之一)。怎么打包。(就像有些软件安装的时候,可以选择是“典型安装”、“全部安装”“最小安装”) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 5个项目需要编译成5个exe文件。然后再打包! 有安装程序类的代码不?发给我一份,参考一下。谢谢。email: [email protected] 我也想看看 [email protected] 打包工具应该可以实现,楼主可以试试wise 用install shield 试试 看不舒服.NET自带的安装程序.用InstallShield打包. 上上个月学了我两个星期, 总算懂了些皮毛了 谁会InstallShield?这个打包工具能满足我说的要求吗?怎么操作。那位大侠给说说。分不够。我在增加啊。 我都是用 NSIS 打包的…… 没搞过这种部分的。一般就是添加SetUp项目,再在项目中添加要装的项目。 .NET中的安装和打包程序1. 在创建好的项目中添加安装项目选择解决方案点击右键新建项目 安装和部署项目安装项目 2. 设置文件系统选择安装项目点击右键视图文件系统 3. 添加需要安装的文件在文件系统中,选择应用程序文件夹点击右键添加项目输出 选择要打包安装的项目主输出确定 完成上面的步骤,安装程序将包含项目运行所需要的文件4. 为程序添加快捷方式和图标快捷方式: 选择主输出项点击右键创建主输出的快捷方式 可以将快捷方式添加到”用户的程序菜单”和”用户桌面”(通过剪贴的方式移动到对应的地方)然后修改快捷方式的名称. 为快捷方式添加图标:选择应用程序文件夹点击右键添加文件 选择要添加的图标文件 选择快捷方式文件在属性面板中设置ICON属性选择图片文件 浏览到安装项目中添加的图标5. 添加数据库文件(参见步骤4中添加图标的方式将数据库文件添加到”应用程序文件夹中”(MDF和LDF文件))6. 添加在安装过程中输入数据库用户名和密码的界面选择安装项目点击右键视图用户界面 选择安装启动点击右键添加对话框文本框A 将文本框A移动到安装文件夹上面7. 设置文本框A的属性选中文本框A,在属性面板中设置相关属性:文本框A中有4个文本框,将Edit3Visible和Edit4Visible设置为false再设置Edit1和Edit2的相关属性.注意:EditXProperty属性: 该属性表示文本框的名称,在后面的代码中我们将通过该名称来访问对应文本框中的文本内容 8. 为安装程序添加自定义操作(调用安装类)选择安装项点击右键视图自定义操作 在自定义操作中选择安装点击安装点击右键添加自定义操作 选择应用程序文件夹主输出确定(因为安装类包含在主输出中) 设置主输出的CustomActionData属性:/name=[NAME] /pwd=[PWD] /targetdir=”[TARGETDIR]\”/name : 在安装类中使用的别名[NAME] : 用户界面中添加的文本框A对应的EditXProperty属性/targetdir=”[TARGETDIR]\” : 安装路径9. 创建安装类在需要安装的项目中添加安装类选择项目点击右键添加添加新项安装程序类在安装类中重写Install方法,并在该方法中编写代码 10. 点击安装项目右键重新生成.打包程序完成每次修改后都需要重新生成安装项目添加卸载程序:1. 在解决方案中添加一个控制台应用程序2. 在控制台应用程序的Main()中添加代码 删除数据库时所需要的用户名和密码,可以在安装时保持到文件中,卸载时从文件中读取{676296FF-A972-402A-BDA9-A047D0C198EE}代码安装程序的编码,每个安装程序的编码都是不一样的,所有要选中安装项目,在属性面板的ProductCode属性中获得(注意:/X是不能少的)3. 将卸载项目添加到文件系统视图的”应用程序文件夹”中(参见打包的步骤3)4. 可以”用户的程序菜单”中为卸载程序添加快捷方式(参见打包的步骤4) http://msdn.microsoft.com/zh-cn/library/k3bb4tfd(VS.80).aspx这里是讲部署的,不知道你能不能用上,可以参考一下. using System;using System.Collections.Generic;using System.ComponentModel;using System.Configuration.Install;using System.Data.SqlClient;namespace DBCustomAction{ [RunInstaller(true)] public partial class DBCustomAction : Installer { public DBCustomAction() { InitializeComponent(); } //建立数据库 private void ExecuteSql(string conn,string DatabaseName,string sql) { SqlConnection mySqlConnection = new SqlConnection(conn); SqlCommand mySqlCommand = new SqlCommand(sql, mySqlConnection); mySqlCommand.Connection.Open(); mySqlCommand.Connection.ChangeDatabase(DatabaseName); try { mySqlCommand.ExecuteNonQuery(); } finally { mySqlCommand.Connection.Close(); } } //重写Install方法 public override void Install(System.Collections.IDictionary stateSaver) { base.Install(stateSaver); try { string connStr = String.Format( "data source={0};user id={1};password={2};persist security info=false;packet size=4096", this.Context.Parameters["server"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]); ExecuteSql(connStr, "master", "CREATE DATABASE " + this.Context.Parameters["dbname"]); 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}YuKidb.sql", this.Context.Parameters["user"], this.Context.Parameters["pwd"], this.Context.Parameters["dbname"], this.Context.Parameters["targetdir"]); sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; sqlProcess.Start(); sqlProcess.WaitForExit(); //等待执行 sqlProcess.Close(); //删除脚本文件 System.IO.FileInfo sqlFileInfo = new System.IO.FileInfo(String.Format("{0}YuKidb.sql", this.Context.Parameters["targetdir"])); if (sqlFileInfo.Exists) sqlFileInfo.Delete(); } catch(Exception ex) { throw ex; } //改写Web.Config的连接数据库字符串 try { System.IO.FileInfo fileInfo=new System.IO.FileInfo(this.Context.Parameters["targetdir"]+"\\Web.Config"); if(!fileInfo.Exists) throw new InstallException("没有找到配置文件"); System.Xml.XmlDocument xmlDocument=new System.Xml.XmlDocument(); xmlDocument.Load(fileInfo.FullName); foreach(System.Xml.XmlNode node in xmlDocument["configuration"].ChildNodes[0]) { if("add"==node.Name) { if("ConnectionString"==node.Attributes.GetNamedItem("key").Value) { node.Attributes.GetNamedItem("value").Value=String.Format( "Data Source={0};Database={1};User id={2};PWD={3}", this.Context.Parameters["server"], this.Context.Parameters["dbname"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]); } } } xmlDocument.Save(fileInfo.FullName); } catch(Exception ex) { throw ex; } } }}其他像48楼所写的,在安装项目那添加一个对话框A,安装时就在这个对话框中输入服务器名、密码、用户名、数据库名。我是参考这篇文章的。估计你的需求是添加复选框(都是微软做好了的),再在这个安装类中添加对应逻辑代码。当然更好的选择是其他第三方的工具。 这个估计需要专门的打包工具了!VS自带的应该不行吧!这个问题以前我也问过,但没满意的答案!http://topic.csdn.net/u/20080403/11/4195833d-c53d-4d2e-bc09-9689385da91a.html 你说的这个和我要求的不一样啊。我的问题是:如果我在打包时将多个EXE项目打包进去,那我怎么做才能在安装时能让用户自己选择需要装哪个项目 你说的这个和我要求的不一样啊。 我的问题是:如果我在打包时将多个EXE项目打包进去,那我怎么做才能在安装时能让用户自己选择需要装哪个项目 LZ可以用这个,不用安装部署,如果用安装部署,需要写一个APPLICATION的代码,然后在界面里进行复选设置.install shield方便多了 先把5个程序都编译好,然后用installsheed打包,就可以了,我原来做google sketchup 6插件的时候要有不同的要求安装我就是这么打的. installsheed 有中文的不?怎么用啊。看了一会。里面的东西太多。不知道怎么弄。你能告诉我一下。操作步骤吗? 可以用Inno Setup 来打包 NET中的安装和打包程序 1. 在创建好的项目中添加安装项目 选择解决方案点击右键新建项目 安装和部署项目安装项目 2. 设置文件系统 选择安装项目点击右键视图文件系统 3. 添加需要安装的文件 在文件系统中,选择应用程序文件夹点击右键添加项目输出 选择要打包安装的项目主输出确定 完成上面的步骤,安装程序将包含项目运行所需要的文件 4. 为程序添加快捷方式和图标 快捷方式: 选择主输出项点击右键创建主输出的快捷方式 可以将快捷方式添加到”用户的程序菜单”和”用户桌面”(通过剪贴的方式移动到对应的地方) 然后修改快捷方式的名称. 为快捷方式添加图标:选择应用程序文件夹点击右键添加文件 选择要添加的图标文件 选择快捷方式文件在属性面板中设置ICON属性选择图片文件 浏览到安装项目中添加的图标 5. 添加数据库文件(参见步骤4中添加图标的方式将数据库文件添加到”应用程序文件夹中”(MDF和LDF文件)) 6. 添加在安装过程中输入数据库用户名和密码的界面 选择安装项目点击右键视图用户界面 选择安装启动点击右键添加对话框文本框A 将文本框A移动到安装文件夹上面 7. 设置文本框A的属性 选中文本框A,在属性面板中设置相关属性: 文本框A中有4个文本框,将Edit3Visible和Edit4Visible设置为false 再设置Edit1和Edit2的相关属性. 注意:EditXProperty属性: 该属性表示文本框的名称,在后面的代码中我们将通过该名称来访问对应文本框中的文本内容 8. 为安装程序添加自定义操作(调用安装类) 选择安装项点击右键视图自定义操作 在自定义操作中选择安装点击安装点击右键添加自定义操作 选择应用程序文件夹主输出确定(因为安装类包含在主输出中) 设置主输出的CustomActionData属性: /name=[NAME] /pwd=[PWD] /targetdir=”[TARGETDIR]\” /name : 在安装类中使用的别名 [NAME] : 用户界面中添加的文本框A对应的EditXProperty属性 /targetdir=”[TARGETDIR]\” : 安装路径 9. 创建安装类 在需要安装的项目中添加安装类 选择项目点击右键添加添加新项安装程序类 在安装类中重写Install方法,并在该方法中编写代码 10. 点击安装项目右键重新生成. 打包程序完成 每次修改后都需要重新生成安装项目 添加卸载程序: 1. 在解决方案中添加一个控制台应用程序 2. 在控制台应用程序的Main()中添加代码 删除数据库时所需要的用户名和密码,可以在安装时保持到文件中,卸载时从文件中读取 {676296FF-A972-402A-BDA9-A047D0C198EE}代码安装程序的编码,每个安装程序的编码都是不一样的,所有要选中安装项目,在属性面板的ProductCode属性中获得(注意:/X是不能少的) 3. 将卸载项目添加到文件系统视图的”应用程序文件夹”中(参见打包的步骤3) 4. 可以”用户的程序菜单”中为卸载程序添加快捷方式(参见打包的步骤4) .net 网站更新的时候提示到一个更新中的页面 日期控件在输入时怎么跳过分隔符 WINFORM如何调用.DLL的函数 基础问题 高手请进 WinForm编译后exe默认图标是app.ico,怎样使编译后exe文件的图标是my.ico? tabpage的问题,各位请进~~ C# KeyDown KeyUp 事件 怎么写 怎样用程序修改浏览器的安全等级。 如何通过remoting将Oracle的存储过程的参数传递给Components中的掉用存储过程的方法???急!急!急! 弱弱的问句 c# winform如何使用类似QQ发信息时字体,插入图片的东东。
1. 在创建好的项目中添加安装项目
选择解决方案点击右键新建项目
安装和部署项目安装项目
2. 设置文件系统
选择安装项目点击右键视图文件系统
3. 添加需要安装的文件
在文件系统中,选择应用程序文件夹点击右键添加项目输出
选择要打包安装的项目主输出确定
完成上面的步骤,安装程序将包含项目运行所需要的文件
4. 为程序添加快捷方式和图标
快捷方式: 选择主输出项点击右键创建主输出的快捷方式
可以将快捷方式添加到”用户的程序菜单”和”用户桌面”(通过剪贴的方式移动到对应的地方)
然后修改快捷方式的名称.
为快捷方式添加图标:选择应用程序文件夹点击右键添加文件 选择要添加的图标文件
选择快捷方式文件在属性面板中设置ICON属性选择图片文件
浏览到安装项目中添加的图标
5. 添加数据库文件(参见步骤4中添加图标的方式将数据库文件添加到”应用程序文件夹中”(MDF和LDF文件))
6. 添加在安装过程中输入数据库用户名和密码的界面
选择安装项目点击右键视图用户界面
选择安装启动点击右键添加对话框文本框A
将文本框A移动到安装文件夹上面
7. 设置文本框A的属性
选中文本框A,在属性面板中设置相关属性:
文本框A中有4个文本框,将Edit3Visible和Edit4Visible设置为false
再设置Edit1和Edit2的相关属性.
注意:EditXProperty属性: 该属性表示文本框的名称,在后面的代码中我们将通过该名称来访问对应文本框中的文本内容
8. 为安装程序添加自定义操作(调用安装类)
选择安装项点击右键视图自定义操作
在自定义操作中选择安装点击安装点击右键添加自定义操作
选择应用程序文件夹主输出确定(因为安装类包含在主输出中)
设置主输出的CustomActionData属性:
/name=[NAME] /pwd=[PWD] /targetdir=”[TARGETDIR]\”
/name : 在安装类中使用的别名
[NAME] : 用户界面中添加的文本框A对应的EditXProperty属性
/targetdir=”[TARGETDIR]\” : 安装路径9. 创建安装类
在需要安装的项目中添加安装类
选择项目点击右键添加添加新项安装程序类
在安装类中重写Install方法,并在该方法中编写代码
10. 点击安装项目右键重新生成.
打包程序完成
每次修改后都需要重新生成安装项目添加卸载程序:
1. 在解决方案中添加一个控制台应用程序
2. 在控制台应用程序的Main()中添加代码
删除数据库时所需要的用户名和密码,可以在安装时保持到文件中,卸载时从文件中读取
{676296FF-A972-402A-BDA9-A047D0C198EE}代码安装程序的编码,每个安装程序的编码都是不一样的,所有要选中安装项目,在属性面板的ProductCode属性中获得(注意:/X是不能少的)
3. 将卸载项目添加到文件系统视图的”应用程序文件夹”中(参见打包的步骤3)
4. 可以”用户的程序菜单”中为卸载程序添加快捷方式(参见打包的步骤4)
这里是讲部署的,不知道你能不能用上,可以参考一下.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Data.SqlClient;namespace DBCustomAction
{
[RunInstaller(true)]
public partial class DBCustomAction : Installer
{
public DBCustomAction()
{
InitializeComponent();
}
//建立数据库
private void ExecuteSql(string conn,string DatabaseName,string sql)
{
SqlConnection mySqlConnection = new SqlConnection(conn);
SqlCommand mySqlCommand = new SqlCommand(sql, mySqlConnection);
mySqlCommand.Connection.Open();
mySqlCommand.Connection.ChangeDatabase(DatabaseName);
try
{
mySqlCommand.ExecuteNonQuery();
}
finally
{
mySqlCommand.Connection.Close();
}
}
//重写Install方法
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
try
{
string connStr = String.Format(
"data source={0};user id={1};password={2};persist security info=false;packet size=4096",
this.Context.Parameters["server"], this.Context.Parameters["user"], this.Context.Parameters["pwd"]);
ExecuteSql(connStr, "master", "CREATE DATABASE " + this.Context.Parameters["dbname"]);
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}YuKidb.sql",
this.Context.Parameters["user"],
this.Context.Parameters["pwd"],
this.Context.Parameters["dbname"],
this.Context.Parameters["targetdir"]);
sqlProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
sqlProcess.Start();
sqlProcess.WaitForExit(); //等待执行
sqlProcess.Close();
//删除脚本文件
System.IO.FileInfo sqlFileInfo = new System.IO.FileInfo(String.Format("{0}YuKidb.sql",
this.Context.Parameters["targetdir"]));
if (sqlFileInfo.Exists)
sqlFileInfo.Delete();
}
catch(Exception ex)
{
throw ex;
} //改写Web.Config的连接数据库字符串
try
{
System.IO.FileInfo fileInfo=new System.IO.FileInfo(this.Context.Parameters["targetdir"]+"\\Web.Config");
if(!fileInfo.Exists)
throw new InstallException("没有找到配置文件");
System.Xml.XmlDocument xmlDocument=new System.Xml.XmlDocument();
xmlDocument.Load(fileInfo.FullName);
foreach(System.Xml.XmlNode node in xmlDocument["configuration"].ChildNodes[0])
{
if("add"==node.Name)
{
if("ConnectionString"==node.Attributes.GetNamedItem("key").Value)
{
node.Attributes.GetNamedItem("value").Value=String.Format(
"Data Source={0};Database={1};User id={2};PWD={3}",
this.Context.Parameters["server"],
this.Context.Parameters["dbname"],
this.Context.Parameters["user"],
this.Context.Parameters["pwd"]);
}
}
}
xmlDocument.Save(fileInfo.FullName);
}
catch(Exception ex)
{
throw ex;
}
}
}
}
其他像48楼所写的,在安装项目那添加一个对话框A,安装时就在这个对话框中输入服务器名、密码、用户名、数据库名。
我是参考这篇文章的。
估计你的需求是添加复选框(都是微软做好了的),再在这个安装类中添加对应逻辑代码。
当然更好的选择是其他第三方的工具。
这个问题以前我也问过,但没满意的答案!
http://topic.csdn.net/u/20080403/11/4195833d-c53d-4d2e-bc09-9689385da91a.html
你说的这个和我要求的不一样啊。
我的问题是:如果我在打包时将多个EXE项目打包进去,那我怎么做才能在安装时能让用户自己选择需要装哪个项目
你说的这个和我要求的不一样啊。
我的问题是:如果我在打包时将多个EXE项目打包进去,那我怎么做才能在安装时能让用户自己选择需要装哪个项目
LZ可以用这个,不用安装部署,如果用安装部署,需要写一个APPLICATION的代码,然后在界面里进行复选设置.install shield方便多了
installsheed 有中文的不?怎么用啊。看了一会。里面的东西太多。不知道怎么弄。你能告诉我一下。操作步骤吗?
1. 在创建好的项目中添加安装项目
选择解决方案点击右键新建项目 安装和部署项目安装项目 2. 设置文件系统
选择安装项目点击右键视图文件系统 3. 添加需要安装的文件
在文件系统中,选择应用程序文件夹点击右键添加项目输出 选择要打包安装的项目主输出确定 完成上面的步骤,安装程序将包含项目运行所需要的文件
4. 为程序添加快捷方式和图标
快捷方式: 选择主输出项点击右键创建主输出的快捷方式 可以将快捷方式添加到”用户的程序菜单”和”用户桌面”(通过剪贴的方式移动到对应的地方)
然后修改快捷方式的名称. 为快捷方式添加图标:选择应用程序文件夹点击右键添加文件 选择要添加的图标文件 选择快捷方式文件在属性面板中设置ICON属性选择图片文件
浏览到安装项目中添加的图标
5. 添加数据库文件(参见步骤4中添加图标的方式将数据库文件添加到”应用程序文件夹中”(MDF和LDF文件))
6. 添加在安装过程中输入数据库用户名和密码的界面
选择安装项目点击右键视图用户界面 选择安装启动点击右键添加对话框文本框A 将文本框A移动到安装文件夹上面
7. 设置文本框A的属性
选中文本框A,在属性面板中设置相关属性:
文本框A中有4个文本框,将Edit3Visible和Edit4Visible设置为false
再设置Edit1和Edit2的相关属性.
注意:EditXProperty属性: 该属性表示文本框的名称,在后面的代码中我们将通过该名称来访问对应文本框中的文本内容 8. 为安装程序添加自定义操作(调用安装类)
选择安装项点击右键视图自定义操作 在自定义操作中选择安装点击安装点击右键添加自定义操作 选择应用程序文件夹主输出确定(因为安装类包含在主输出中) 设置主输出的CustomActionData属性:
/name=[NAME] /pwd=[PWD] /targetdir=”[TARGETDIR]\”
/name : 在安装类中使用的别名
[NAME] : 用户界面中添加的文本框A对应的EditXProperty属性
/targetdir=”[TARGETDIR]\” : 安装路径 9. 创建安装类
在需要安装的项目中添加安装类
选择项目点击右键添加添加新项安装程序类
在安装类中重写Install方法,并在该方法中编写代码 10. 点击安装项目右键重新生成.
打包程序完成
每次修改后都需要重新生成安装项目 添加卸载程序:
1. 在解决方案中添加一个控制台应用程序
2. 在控制台应用程序的Main()中添加代码 删除数据库时所需要的用户名和密码,可以在安装时保持到文件中,卸载时从文件中读取
{676296FF-A972-402A-BDA9-A047D0C198EE}代码安装程序的编码,每个安装程序的编码都是不一样的,所有要选中安装项目,在属性面板的ProductCode属性中获得(注意:/X是不能少的)
3. 将卸载项目添加到文件系统视图的”应用程序文件夹”中(参见打包的步骤3)
4. 可以”用户的程序菜单”中为卸载程序添加快捷方式(参见打包的步骤4)