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

来源:互联网 发布:mac口红所有色号图片 编辑:程序博客网 时间:2024/06/11 21:21

(一)说明
????? 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
{
?///


?/// Class1 的摘要说明。
?///

?class Start
?{
??///
??/// 应用程序的主入口点。
??/// 参数 args :
??///??? args[0] :虚拟路径
??///??? args[1] :物理路径
??///??? args[2] :服务器名,可以不输入,默认 localhost
??///???
??/// 运行示例:
??///??? CreateWebDir.exe VirDirTest D:/work
??///??? CreateWebDir.exe VirDirTest D:/work? deve-server
??///

??[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???{
????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();
??}

?}
}

原创粉丝点击