一键打开vs中的网站
一鍵打開ASP.NET WEB網(wǎng)站項目
作者:lerit??來源:博客園??發(fā)布時間:2011-02-16 09:22??閱讀:214 次??原文鏈接?? [收藏]??通常情況下,在開發(fā)一個asp.net的WEB網(wǎng)站時,若要打開WEB網(wǎng)站,首先要打開開發(fā)平臺,選擇菜單的“文件”-“打開”-“網(wǎng)站”,然后選擇網(wǎng)站的根目錄,最后確認(rèn)后,方可打開這一網(wǎng)站。不像WEB應(yīng)用程序,有個解決方案(*.sln),雙擊后可以打開(當(dāng)然也可以為網(wǎng)站生成一個解決方案),因此以上這種方法還是比較麻煩。如果在某些應(yīng)用環(huán)境中,需要按照如上的方式打開一個站點,本文利用了Visual Studio提供的命令行工具、宏以及系統(tǒng)注冊表知識,可以實現(xiàn)一鍵完成如上操作步驟。以下以windows 2008+visual studio 2010平臺為例。
備注:實際上,VS通過上述方式打開網(wǎng)站時,也是在內(nèi)存中生成了一個sln文件,然后打開這個解決方案的,只是尚未以文件形式保存在磁盤,因此在開發(fā)平臺中關(guān)閉網(wǎng)站時會提示是否保存它的解決方案。這一結(jié)論可以通過錄制宏來判別出來。
?
1.思路
想達到的效果就是如果當(dāng)需要打開某一網(wǎng)站時,只需在其文件夾上右鍵,選擇一個預(yù)先設(shè)置好的命令,就能打開VS開發(fā)平臺,并打開這一文件夾下的網(wǎng)站。因此,涉及到右鍵調(diào)用命令問題以及命令行打開網(wǎng)站的問題。
2.右鍵調(diào)用命令
右鍵上去調(diào)用某一命令,這是注冊表的事,這個比較簡單:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb]
@="Open Folder As Website"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\OpenVSWeb\command]
@="需要執(zhí)行的某一命令”
這一注冊表命令,首先在右鍵單擊文件夾時候,顯示"Open Folder As Website",選擇后,去執(zhí)行某一命令,具體執(zhí)行什么命令,是下一步的工作。
3.命令行打開網(wǎng)站
VS平臺運行時的進程是devenv.exe,好在它也提供了命令行方式,用于打開項目??梢酝ㄟ^在運行中,輸入devenv /?來查看具體有哪些參數(shù)??上У氖?#xff0c;從介紹來看,它提供的大部分方法通常是打開一個解決方案文件或項目文件。也就是無法直接打開一個文件夾下的網(wǎng)站。其中有一個命令,是command參數(shù),它用于打開VS平臺后去執(zhí)行某些命令。這讓我想到了利用VS平臺提供的宏工具,它可以用于完成手動的一些操作。
4.宏命令自動打開web站點
通過查閱,發(fā)現(xiàn)VS提供了EnvDTE 命名空間,它可以實現(xiàn)VS的自動化操作。其中的VsWebSite的VSWebPackage提供了OpenWebSite方法來將指定目錄作為網(wǎng)站打開。
OpenWebSite("路徑位置",VsWebSite.OpenWebsiteOptions.OpenWebsiteOption_None, False)
5.總結(jié)
至此,通過注冊表執(zhí)行了devenv,通過devenv執(zhí)行了宏命令,達到一鍵打開web站點的目的。下面給出所有代碼:
宏文件:(VS2010中編譯通過,其他版本如果Imports部分報錯,請適當(dāng)修改或刪除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 |
保存編譯后即可。
注冊表文件:復(fù)制到文本文件中,保存為*.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\\\""
保存后雙擊執(zhí)行導(dǎo)入。
至此,可以在任意文件夾上右鍵,選擇"Open Folder As Website",則系統(tǒng)會自動打開這一文件夾下WEB站點。
安裝步驟:
1.將WebsiteMacroProject.vsmacros復(fù)制到一個固定位置(默認(rèn)2008下vs2010的宏均放在c:\document\Visual Studio 2010\Projects\VSMacros80下,當(dāng)然其他位置也可以,只要不會刪除即可)
2.打開VS平臺,工具-宏-加載宏項目,選擇第一步中位置下的WebsiteMacroProject.vsmacros文件。
3.雙擊Install.reg,導(dǎo)入到注冊表。(適合XP及其以上系統(tǒng))
使用方法:
在任意文件夾上右鍵,選擇"Open Folder As Website"即可。
卸載:
主要是去除右鍵的顯示,執(zhí)行Unstall.reg即可。
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的一键打开vs中的网站的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书也具有五华石乡特色
- 下一篇: 流露人间的情回忆儿童节