发布网友 发布时间:2022-04-27 15:03
共4个回答
懂视网 时间:2022-04-27 19:24
1、 为了能更好的操作IIS,先添加个类库(InstallClassLibrary)到项目中。附代码输出,把WEB内容和刚才建立的类库添加到目录中。
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)中添加-项目
热心网友 时间:2022-04-27 16:32
http://www.include.net.cn/web/showdown.asp?id=75热心网友 时间:2022-04-27 17:50
汗。。简单的方法是用GOST 克隆~!热心网友 时间:2022-04-27 19:25
付费内容限时免费查看回答您好,您可以试试看这样创建安装包!1、准备文件:
需要制成安装包的文件(必须)、
安装包的ico图标(可选.ico格式,分辨率在100*100左右)、
安装包的产品展示图片(可选.bmp格式,分辨率在100*300左右)