一键打开vs中的网站

 

一键打开ASP.NET WEB网站项目

作者: lerit  来源: 博客园  发布时间:2011-02-16 09:22  阅读:214 次   原文链接   [收藏]  

通常情况下,在开发一个asp.net的WEB网站时,若要打开WEB网站,首先要打开开发平台,选择菜单的“文件”-“打开”-“网站”,然后选择网站的根目录,最后确认后,方可打开这一网站。不像WEB应用程序,有个解决方案(*.sln),双击后可以打开(当然也可以为网站生成一个解决方案),因此以上这种方法还是比较麻烦。如果在某些应用环境中,需要按照如上的方式打开一个站点,本文利用了Visual Studio提供的命令行工具、宏以及系统注册表知识,可以实现一键完成如上操作步骤。以下以windows 2008+visual studio 2010平台为例。

备注:实际上,VS通过上述方式打开网站时,也是在内存中生成了一个sln文件,然后打开这个解决方案的,只是尚未以文件形式保存在磁盘,因此在开发平台中关闭网站时会提示是否保存它的解决方案。这一结论可以通过录制宏来判别出来。

 

1.思路

想达到的效果就是如果当需要打开某一网站时,只需在其文件夹上右键,选择一个预先设置好的命令,就能打开VS开发平台,并打开这一文件夹下的网站。因此,涉及到右键调用命令问题以及命令行打开网站的问题。

2.右键调用命令

右键上去调用某一命令,这是注册表的事,这个比较简单:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb]

@="Open Folder As Website"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb\command]

@="需要执行的某一命令”

这一注册表命令,首先在右键单击文件夹时候,显示"Open Folder As Website",选择后,去执行某一命令,具体执行什么命令,是下一步的工作。

3.命令行打开网站

VS平台运行时的进程是devenv.exe,好在它也提供了命令行方式,用于打开项目。可以通过在运行中,输入devenv /?来查看具体有哪些参数。可惜的是,从介绍来看,它提供的大部分方法通常是打开一个解决方案文件或项目文件。也就是无法直接打开一个文件夹下的网站。其中有一个命令,是command参数,它用于打开VS平台后去执行某些命令。这让我想到了利用VS平台提供的宏工具,它可以用于完成手动的一些操作。

4.宏命令自动打开web站点

通过查阅,发现VS提供了EnvDTE 命名空间,它可以实现VS的自动化操作。其中的VsWebSite的VSWebPackage提供了OpenWebSite方法来将指定目录作为网站打开。

OpenWebSite("路径位置",VsWebSite.OpenWebsiteOptions.OpenWebsiteOption_None, False)

5.总结

至此,通过注册表执行了devenv,通过devenv执行了宏命令,达到一键打开web站点的目的。下面给出所有代码:

宏文件:(VS2010中编译通过,其他版本如果Imports部分报错,请适当修改或删除Imports即可)

在VS中,菜单选择:工具-宏-新建宏项目,命名为WebsiteMacroProject,为此项目添加vsWebSite.Interop引用,为项目添加一新项,命名为Website,代码:

 
01Option Strict Off
02Option Explicit Off
03Imports System
04Imports EnvDTE
05Imports EnvDTE80
06Imports EnvDTE90
07Imports EnvDTE90a
08Imports EnvDTE100
09Imports System.Diagnostics 
10  
11Public Module Website 
12  
13    Sub OpenWebsite(Optional ByVal path As String = ""
14  
15        If (String.Compare(path, String.Empty) = 0) Then 
16  
17            MsgBox("文件夹目录无能为空!", MsgBoxStyle.OkOnly) 
18  
19        Else
20            Dim webPkg As VsWebSite.VSWebPackage 
21  
22            webPkg = DTE.GetObject("WebPackage"
23  
24            webPkg.OpenWebSite(path, VsWebSite.OpenWebsiteOptions.OpenWebsiteOption_None, False
25  
26        End If 
27  
28    End Sub 
29  
30End Module

保存编译后即可。

注册表文件:复制到文本文件中,保存为*.reg(*为任意合法的文件名字符串)

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb]

@="Open Folder As  Website"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb\command]

@="devenv /command \\\"Macros.WebsiteMacroProject.Website.OpenWebsite %1\\\""

保存后双击执行导入。

至此,可以在任意文件夹上右键,选择"Open Folder As Website",则系统会自动打开这一文件夹下WEB站点。

安装步骤:

1.将WebsiteMacroProject.vsmacros复制到一个固定位置(默认2008下vs2010的宏均放在c:\document\Visual Studio 2010\Projects\VSMacros80下,当然其他位置也可以,只要不会删除即可)

2.打开VS平台,工具-宏-加载宏项目,选择第一步中位置下的WebsiteMacroProject.vsmacros文件。

3.双击Install.reg,导入到注册表。(适合XP及其以上系统)

使用方法:

在任意文件夹上右键,选择"Open Folder As Website"即可。

卸载:

主要是去除右键的显示,执行Unstall.reg即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值