一键打开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,代碼:
| 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即可。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的一键打开vs中的网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书也具有五华石乡特色
- 下一篇: 流露人间的情回忆儿童节