解决.NET(WebApplication)安装部署的不能选择安装路径的问题

王朝c#·作者佚名  2006-01-09
宽屏版  字体: |||超大  

(一)说明

WebApplication安装部署时,不能选择安装路径;解决思路:

(1)创建一个控制台应用程序CreateWebDir.exe ,作用是创建 Web 虚拟目录。

(2)安装部署制作采用windows Application安装部署,不是WebApplication安装

部署。因为windows Application安装部署有选择路径的操作,选择的路径

保存在 [TARGETDIR]。

(3)在安装部署制作—“自定义操作”中[提交]下添加自定义操作,选择CreateWebDir.exe,其属性:

(A)Arguments = Bug2000 [TARGETDIR] ,即CreateWebDir.exe传入两个

参数。Bug2000指Web 虚拟目录;[TARGETDIR]指物理目录。

(B)InstallerClass = false,设置为非ProjectInstaller类

(二)创建一个控制台应用程序CreateWebDir.exe

(1) main.cs

(2)CreateWebDir.cs 见《IIS控制管理--Web虚拟目录的创建及管理

(3)INIFile.cs 见《INI文件的操作(ASP.NET+C#)

(三)main.cs 文件

using System;

using System.IO;

using System.DirectoryServices;

using System.Runtime.InteropServices;

namespace CreateWebDir

{

/// <summary>

/// Class1 的摘要说明。

/// </summary>

class Start

{

/// <summary>

/// 应用程序的主入口点。

/// 参数 args :

/// args[0] :虚拟路径

/// args[1] :物理路径

/// args[2] :服务器名,可以不输入,默认 localhost

///

/// 运行示例:

/// CreateWebDir.exe VirDirTest D:\work

/// CreateWebDir.exe VirDirTest D:\work deve-server

/// </summary>

[STAThread]

static void Main(string[] args)

{

int i;

string iniFile;

if (args.Length > 1)

{

iniFile = args[1];

if (iniFile.Substring(iniFile.Length-1,1)=="\\")

iniFile = args[1]+"Bug2004.ini";

else

iniFile = args[1]+"\\Bug2004.ini";

}

else

iniFile = @"C:\Bug2004.ini";

//string iniFile = @"D:\Bug2000.ini";

if (!File.Exists(iniFile))

{

using (FileStream fs = File.Create(iniFile))

{

fs.Close();

}

}

INIFile myINI = new INIFile(iniFile);

for(i=0;i<args.Length;i++)

{

myINI.IniWriteValue("WebDir","arg"+i.ToString(),args[i]);

}

string sServer = "localhost";

if (args.Length > 2) sServer= args[2];

IISManager iisMg = new IISManager(sServer);

iisMg.Connect();

if (iisMg.Exists(args[0]))

{

Console.Write(args[0]+ " is exist!");

myINI.IniWriteValue("WebDir","WebDirExist","true");

}

else

{

myINI.IniWriteValue("WebDir","WebDirExist","false");

iisMg.get_AnonymousUser();

string[] anonymousUser = new string[2];

anonymousUser[0] = iisMg.AnonymousUserName ;

anonymousUser[1] = iisMg.AnonymousUserPass ;

VirtualDirectory newVirDir = new VirtualDirectory(args[0],args[1],anonymousUser);

if (iisMg.Create(newVirDir))

{

Console.Write(args[0]+ " 创建成功!");

myINI.IniWriteValue("WebDir","WebDirCreated","true");

}

else

{

Console.Write(args[0]+ " 创建不成功!");

myINI.IniWriteValue("WebDir","WebDirCreated","false");

}

}

iisMg.Close();

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有