您的位置:首页 > 其它

一步步做自己的webinstall安装包

2012-10-15 00:00 211 查看
1、 为了能更好的操作IIS,先添加个类库(InstallClassLibrary)到项目中。附代码
using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Configuration.Install; 
using System.DirectoryServices; 
using System.Diagnostics; 
using System.Windows.Forms; 
using System.Security.AccessControl; 
using System.IO; 
namespace InstallClassLibrary 
{ 
[RunInstaller(true)] 
public partial class WebInstaller : Installer 
{ 
public WebInstaller() 
{ 
InitializeComponent(); 
} 
public override void Install(IDictionary stateSaver) 
{ 
base.Install(stateSaver); 
CreateVirtualDir();//以下代码为更改网站指定目录权限 
DirectoryInfo di = new DirectoryInfo("d:\\yourpath\\xml"); 
if((di.Attributes&FileAttributes.ReadOnly)!=0) 
di.Attributes=FileAttributes.Normal; 
DirectorySecurity ds=di.GetAccessControl(); 
ds.AddAccessRule(new FileSystemAccessRule("NETWORK SERVICE",FileSystemRights.Modify,InheritanceFlags.ObjectInherit|InheritanceFlags.ContainerInherit, 
PropagationFlags.None,AccessControlType.Allow)); 
di.SetAccessControl(ds); 
// 
} 
void CreateVirtualDir() 
{ 
try 
{ 
DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC/1/root"); 
DirectoryEntry newRoot = root.Children.Add("virtualName", root.SchemaClassName); 
newRoot.Properties["Path"][0] = "d:\\yourpath"; //this.Context.Parameters["targetdir"]; 
newRoot.Properties["AppIsolated"][0] = 2; // 值 0 表示应用程序在进程内运行,值 1 表示进程外,值 2 表示进程池 
newRoot.Properties["AccessScript"][0] = true; // 可执行脚本 
newRoot.Invoke("AppCreate", true); 
newRoot.Properties["DefaultDoc"][0] = "login.aspx";//设置起始页 
newRoot.Properties["AppFriendlyName"][0] = "applicationName"; // 应用程序名 
newRoot.CommitChanges(); 
root.CommitChanges(); 
} 
catch (Exception ee) 
{ 
MessageBox.Show("虚拟目录创建失败!您可以手动创建! " + ee.Message + ";" + ee.Source + ";" + ee.TargetSite + ";" + ee.InnerException + ";" + ee.StackTrace, "Error", MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, 0); 
} 
} 
} 
}

2、添加安装项目到解决方案中,然后在该安装项目(Setup)中添加-项目输出,把WEB内容和刚才建立的类库添加到目录中。
3、在安装项目左键在属性窗口中更改制造商,安装程序的标题、是否针对所有用户安装、产品名等内容。
右键-视图-自定义操作,右键安装-添加自定义操作-应用程序文件夹,选择“安装类库(InstallClassLibrary)”,添加完成后,在文件系统中右键应用程序文件夹设置默认安装目录。
若还想去定义更多的用户安装数据,请增加用户界面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: