为啥代码隐藏文件在 VB.NET Web 应用程序项目中不可见?

Posted

技术标签:

【中文标题】为啥代码隐藏文件在 VB.NET Web 应用程序项目中不可见?【英文标题】:Why are code-behind files not visible in a VB.NET Web Application project?为什么代码隐藏文件在 VB.NET Web 应用程序项目中不可见? 【发布时间】:2011-08-17 11:00:34 【问题描述】:

我正在尝试将 VB.NET 网站项目转换为 Web 应用程序项目,但在 Web 应用程序项目中,我的代码隐藏文件不可见,除非我将解决方案资源管理器设置为“显示所有文件”选项。为什么是这样?我可以更改哪些设置以使我的文件隐藏代码始终可见?

【问题讨论】:

给读者的说明。网站项目不会出现此问题——只是 Web 应用程序项目。这在 Visual Studio 2012 中是正确的。我不知道 VS 2013 或 2015。 【参考方案1】:

您可以将 VS 设置为始终显示所有文件。这是最好的解决方案,虽然避免这种情况的一个非常丑陋的方法是重命名后面代码的文件。

【讨论】:

是的,这很难看,但它显示 C# 应用程序的代码隐藏文件,而不是 VB 对我来说似乎很愚蠢,给人的印象是 MS 认为 VB 用户太愚蠢,无法处理解决方案资源管理器中的视图稍微复杂一些。 至于如何显示所有文件,在解决方案资源管理器窗口中选择项目(而不是解决方案)。然后“显示所有文件”的“解决方案资源管理器”工具栏中将出现一个图标【参考方案2】:

我知道这是一个老问题,但它是 Google 上的最高结果,我找到了替代解决方案。

在文本编辑器中打开项目的 .vbproj 文件,然后搜索代码隐藏文件的名称。你会发现它看起来像这样:

<Compile Include="dashboard\index.aspx.vb">
  <DependentUpon>index.aspx</DependentUpon>
  <SubType>ASPXCodebehind</SubType>
</Compile>

如果您只是删除 DependentUpon 标记,一切仍将正常工作,但两个文件将根据需要显示在 Visual Studio 中。所以我的最终版本应该是这样的:

<Compile Include="search\index.aspx.vb">
  <SubType>ASPXCodeBehind</SubType>
</Compile>

这需要一些手动编辑,但它对我有用。或者,如果您在创建常规类文件后手动将文件重命名/编辑为页面/代码隐藏格式,它们将在项目中按需要显示,而无需求助于“显示所有文件”。

【讨论】:

当您执行“显示所​​有文件”时,后面的代码和设计器页面嵌套在 .aspx 文件下。使用您的方法,该文件将完全单独列出。您是否可以在 .vbproj 文件中进行更改以使文件隐藏的代码变得可见但嵌套在 .aspx 文件下?否则,很好的解决方案。允许您选择要准确显示的文件。 我认为 DependentUpon 标志是通常用于嵌套文件的标志,但它专门针对 VB 文件禁用,因为显然它对于 VB 开发人员来说太复杂了。请参阅此反馈底部的 MS 开发人员 David Nelson 的评论:connect.microsoft.com/VisualStudio/feedback/details/590046/… 在我的搜索中看到了那个链接,但没有意识到他是一名 MS 开发人员。谢谢!

以上是关于为啥代码隐藏文件在 VB.NET Web 应用程序项目中不可见?的主要内容,如果未能解决你的问题,请参考以下文章

为啥不在 VB.NET 的 web 服务的参数中暴露 List(Of String)? [复制]

VB.Net 代码比较 - 哪个更好,为啥?

为啥在 VB.NET 中使用 DeviceIoControl 进行文件枚举比在 C++ 中更快?

从我的 VB.NET 应用程序中在命令提示符下执行命令列表

将旧的 VB.Net Web 项目转换为新的响应式项目 [关闭]

为啥将 VB.NET 代码迁移到 C# 时,for 循环的行为会有所不同?