簡體   English   中英

將文件夾中的 NESTED 子項目視為 IntelliSense 中 IIS 網站中的子文件夾(即從根項目繼承 web.config)

[英]Treat NESTED sub-projects in folders as child folders in IIS website in IntelliSense (ie. inherit web.config from root project)

有一個大型ASP.NET web 項目,由多年來開發的數萬個文件組成。

有效的層次結構如下所示:

Site\All.sln
Site\root.csproj
Site\web.config
...
Site\Sub1\sub1.csproj
Site\Sub1\web.config <-- inherits from Site\web.config at runtime;
                         tell IntelliSense to do the same
Site\Sub1\page.aspx
...
Site\Sub1\Sub1a\sub1a.csproj
...
Site\Sub2\sub2.csproj
...
Site\bin <-- all assemblies compiled to here

后端代碼編譯良好,項目運行page.aspx沒有錯誤,因為執行時 IIS 理解嵌套的 web.configs(即Site\web.config配置, Site\Sub1\web.config從根配置)。

但是,在 Visual Studio 2022 中編輯page.aspx (作為Sub1項目的一部分)時, IntelliSense 報告錯誤(即“未引用程序集”),因為它不理解Site\Sub1\web.config是子 web 配置這將從父 web.config 繼承。

還有其他問題,例如沒有看到/理解<system.codedom> (根 web.config 更改以啟用 Roslyn)和/或Site\bin是從中加載程序集的位置(這會破壞 aspx 編輯器突出顯示當非 SN 共享程序集添加到<assemblies>時)。

將所有項目移動到頂級文件夾的情況下:

  • 是否可以讓 Visual Studio實際運行一樣應用 web.config?
  • 同樣,是否可以讓 Visual Studio 理解“Sub1/Page.aspx”(不是“Page.aspx”)是部署站點時的相對路徑?

不將所有項目文件移動到根文件夾的一個重要原因是,除了一些乏味的半自動化工作之外,VS 在這種情況下很難處理“顯示所有文件”。 在 SDK 風格的項目中否定路徑也是痛苦的(緩慢和管理問題)。

利用配置文件的配置部分不會從父 web.config 繼承。

<location path="." allowOverride="false" inheritInChildApplications="false"></location>

在父 web.config 中的 <system.web> 之后添加它。

還有一種方法是在項目和select屬性上右鍵找到web配置。 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM