【踩坑記錄】ASP.NET Web Forms 的 VB 專案中為什麼看不到 .designer.vb?
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1275
最近在折騰一個老舊的 VB Web Forms 專案時,我遇到了一個讓人抓狂的問題:
在 Solution Explorer 裡面,我新建的 MenuForm.aspx
頁面居然 沒有對應的 MenuForm.aspx.vb
和 MenuForm.aspx.designer.vb
文件!
第一時間懷疑是 Visual Studio 出 Bug,甚至懷疑是我裝的模板有問題。結果浪費了半天時間。最後才發現——這居然是 一個超低級卻非常隱蔽的坑。
問題現象
打開專案後,專案結構是這樣的:
Solution 'WEI'
└─ WEI
├─ Connected Services
├─ My Project
├─ References
├─ App_Data
├─ Models
├─ Global.asax
├─ MenuForm.aspx
├─ packages.config
└─ Web.config
看到了嗎?
只有 .aspx
主文件,完全沒有 .aspx.vb 和 .designer.vb。
原因揭秘:其實文件是存在的
原來,這些 Designer 文件其實是 默默生成的,只是 沒有被包含進專案。
Visual Studio 默認只展示「已包含」的文件,如果你沒開啟 Show All Files,就完全看不到它們。
也就是說,它們可能已經在檔案系統裡,比如:
MenuForm.aspx
MenuForm.aspx.vb
MenuForm.aspx.designer.vb
但 VS 僅僅顯示了第一個。
解決方案
-
打開「Show All Files」
在 Solution Explorer 頂部,有一個小按鈕,叫 「Show All Files」(顯示所有檔案)。
點一下,你會看到灰色的隱藏文件冒出來。 -
手動包含到專案
找到MenuForm.aspx.designer.vb
和MenuForm.aspx.vb
,
右鍵 → Include In Project(包含到專案)。這樣,它們就會正式成為專案的一部分,並在 VS 中正常顯示。
延伸:什麼時候會遇到這個坑?
-
VB Web Forms 專案 → 最容易中招
-
新增 .aspx 頁面時,如果 VS 沒有自動把 designer 文件包含進去
-
或者你從別的地方 Copy 過來的頁面文件
C# Web Forms 專案裡相對少見這個問題,但在 VB 世界裡它就是個坑。
心得體會
這個小細節浪費了我一下午時間。
踩過一次之後才知道,以後只要遇到 VB 專案的 .aspx 頁面看不到 designer,
第一件事就是:點 Show All Files!
TL;DR
-
VB 的 ASP.NET Web Forms 專案裡,
.designer.vb
文件可能存在但沒包含進專案。 -
開啟 Show All Files,然後右鍵 → Include In Project 就能解決。
-
記住:不是 VS 壞了,也不是模板少了,只是 VS 沒顯示出來而已。
This article was last edited at