【踩坑記錄】ASP.NET Web Forms 的 VB 專案中為什麼看不到 .designer.vb?

| Visual Basic | 2 Reads

最近在折騰一個老舊的 VB Web Forms 專案時,我遇到了一個讓人抓狂的問題:
Solution Explorer 裡面,我新建的 MenuForm.aspx 頁面居然 沒有對應的 MenuForm.aspx.vbMenuForm.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 僅僅顯示了第一個。


解決方案

  1. 打開「Show All Files」
    在 Solution Explorer 頂部,有一個小按鈕,叫 「Show All Files」(顯示所有檔案)。
    點一下,你會看到灰色的隱藏文件冒出來。

  2. 手動包含到專案
    找到 MenuForm.aspx.designer.vbMenuForm.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