一键打开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,代码:

01 Option Strict Off
02 Option Explicit Off
03 Imports System
04 Imports EnvDTE
05 Imports EnvDTE80
06 Imports EnvDTE90
07 Imports EnvDTE90a
08 Imports EnvDTE100
09 Imports System.Diagnostics 
10   
11 Public 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   
30 End 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即可。

一键打开vs中的网站相关推荐

  1. 打开服务器数据库文件,如何打开服务器中的数据库文件

    如何打开服务器中的数据库文件 内容精选 换一换 云服务器新增磁盘,开机自动执行磁盘初始化脚本后,Oralce.MySQL和SQL Server等数据库系统日志Msg 823错误 .磁盘初始化脚本Win ...

  2. 不会编程也能搞定一键打开文件

    每天上班打开电脑后的第一件事情就是打开昨天没弄完的文件,然后再打开需要的文档.再打开查阅资料的网站.再打开需要用到的工具软件.等准备工作做完好几分钟就过去了,有时候还会突然找不到要用的文件到底在哪放着 ...

  3. 通过winform+模拟登录实现快速一键登录到人才招聘网站

    之前为了便于人事部门招聘登录网站更简洁高效,免去每天频繁输网址.用户名.密码等相关登录信息,特基于winform+HttpWebRequest实现模拟请求登录,最终达到一键登录到招聘网站后台的效果. ...

  4. powerbi中python网站数据_Power BI应用实战:批量爬取网页数据

    前面介绍PowerBI数据获取的时候,曾举了一个从网页中获取数据的例子,但当时只是爬取了其中一页数据,这篇文章来介绍如何用PowerBI批量采集多个网页的数据. 本文以智联招聘网站为例,采集工作地点在 ...

  5. 树莓派 + lnmp一键安装包 + thinkphp搭建网站

    目录 前言: 一.准备树莓派 二.安装lnmp安装包 三.设置虚拟主机 1.添加虚拟主机​ 2.上传Thinkphp框架 3.进行一些配置(重要) 前言: 之前零星写了一些环境搭建的问题的解决方法,现 ...

  6. 在SharePoint 2010中创建网站的权限级别

    转:http://www.360sps.com/Item/CreatePermissionLevels.aspx 权限级别是SharePoint 2010新增加的功能,使我们对权限的设置又提高了一个层 ...

  7. chrome浏览器开发者工具F12中某网站的sources下的源码如何批量保存?

    目录 chrome浏览器 开发者工具F12中某网站的sources下的源码如何批量保存 1. 常用保存Sources源码的两种方法 1.1单个文件 1.2 单个页面 2. 问题 3.解决方案 chro ...

  8. Visual Web Developer 中的网站类型

    原文地址 http://msdn.microsoft.com/zh-cn/library/9d9ats98(v=VS.90).aspx 本文内容 概述 文件系统网站 本地 IIS 网站 FTP 部署的 ...

  9. Azure中配置网络安全组入站规则让外部网络访问VM中的网站

    今天在azure中搭建了个虚机,虚机的IIS上搭建了个测试网站,然后在虚机内可以正常访问,但是在外部internet却无法访问. 查看了azure的帮助文档,网上也搜了,得到的答案都是设置终结点,az ...

最新文章

  1. vs中调试中的命令行参数
  2. LUA中相同签名函数覆盖
  3. SAP Knowledge Article TREX search determination
  4. Jmeter通过CSV Data Set Config参数化
  5. android点赞动画仿twritter,【点赞动画仿抖音】Android 自定义view动画--酷炫点赞动画...
  6. java初学者书籍_面向初学者的5本最佳Java核心书籍
  7. c#二叉树 取叶子节点个数_图文并茂方式轻松掌握数据结构之二叉树和B树!
  8. Qt_QTableWidget用法 添加、删除、添加控件、获取控件在表格中位置
  9. android 执行Shell命令
  10. 阿里云云计算专业认证(ACP)怎么样,怎么学习?
  11. IPO图(INPUT PROCESS OUTPUT)
  12. 【Visual C++】游戏开发笔记二十五 最简化的DirectX开发环境的配置
  13. 神经网络解决XOR(抑或)问题
  14. [转] 金山CEO求伯君今退休 老一代程序员时代结束
  15. VUE图片裁剪组件,基于VueCropper
  16. DevOps 工具链图 汇总
  17. Java开发手册阅读笔记
  18. 基于STM32F407的摄像头(不带FIFO的OV7670)图像采集及LCD显示实验-笔记整理
  19. 真相了,读完研就能找到好工作吗?
  20. 最新最全!《个人防疫手册》来了!

热门文章

  1. 图解VS2010打包全过程
  2. Cisco 2950 系列交换机实例配置
  3. PHP创建图像的应用!!!!
  4. hdu 1593(数学)
  5. SQLserver2008数据表的修改操作
  6. LeetCode 169.求众数
  7. 引号不是字符串中唯一的可以被转义字符。下面是常见的转义序列列表:
  8. Windows10 UWP开发 - 响应式设计
  9. 重拾Javascript (四) KnockoutJs使用
  10. C# 模拟 Post