Visual Studio 2010可以进行".inc"文件的语法高亮吗?

17

Visual Studio 2010可以配置以对“.inc”文件进行语法高亮吗?我们有许多大型项目中有大量的这些“.inc”文件(asp文件),因此更改文件扩展名为“.asp”不是一个选项。我想要的只是让Visual Studio 2010在语法高亮方面像处理“.asp”文件一样处理这些“.inc”文件。

我尝试了“打开方式...”,并选择了HTML编辑器,它是“.asp”默认值,但没有起作用。我尝试了列表中的其他所有编辑器,但它们都没有起作用。

我知道Notepad++(等等)可以做到这一点,但我更喜欢在Visual Studio 2010中完成 - 使用另一个IDE或文本编辑器不是我在这里寻找的答案。


你找到一个可靠的解决方案了吗?它似乎做一些奇怪的事情,比如不能处理大的inc文件,但是后来在一天中它又能正常工作了。我也尝试了注册表键的技巧。 - Jules
8个回答

17

在Visual Studio中,前往选项 -> 文本编辑器 -> 文件扩展名。将扩展名'inc'输入为扩展名并将编辑器设置为“Web表单编辑器”。您可能需要关闭当前打开的".Inc"页面然后再重新打开它们...希望这可以帮到您。


11

对于我来说,“Web Form Editor”和“HTML Editor”都不是最理想的工具。它们似乎可以突出 HTML 语法,但 VBScript 关键字与其他内容一样以标准黑色文本形式呈现。

虽然不是最佳方案,但我按照其他答案中的说明进行了操作,将编辑器类型替换为 Visual Basic,这样更符合我的喜好(因为它们是包含文件,里面很少有 HTML)。

  • 选项 -> 文本编辑器 -> 文件
  • 扩展名。输入“inc”作为扩展名,并将编辑器设置为“Visual Basic”
  • 关闭并重新打开任何“.inc”文件,高亮显示应该可见。

4

Antonio的解决方案对我很有用。我确实需要关闭并重新打开文件,但在重新打开它们后,高亮显示就可见了。谢谢!

选项 -> 文本编辑器 -> 文件扩展名。
将“inc”作为扩展名,将编辑器设置为“Web表单编辑器”。
关闭并重新打开任何“.inc”文件,高亮显示应该可见。

顺便提一下,这也适用于Visual Studio 2005。


这对我有用。不幸的是,看起来 Visual Studio 给你的灵活性不够理想...例如,我想将 cs.pp 文件作为 C# 编辑,将 cshtml.pp 文件作为 Web Form,但它不认为 cs.ppcshtml.pp 是有效的扩展名。我只能使用 pp 并选择其中一个 :-( - Pandincus

2
使用文件扩展名、文本编辑器和选项对话框。http://msdn.microsoft.com/en-us/library/4k7w5e5s.aspx -更新-
我看到了相同的行为 :-( 如果我找到了什么,会让你知道。
作为一种解决方法,您可以将所有.inc文件重命名为.asp文件。
这样做的另一个好处是,如果直接请求inc文件(很不可能,但有可能;并且假设您在Web目录中有inc文件),您的代码将被暴露出来,而不像asp那样被处理和呈现。

2
我感谢您的快速回复,Raj。然而,这个解决方案并不像我想要的那样有效。当我输入“.inc”并使用HTML编辑器打开它时,它会突出显示代码分隔符和HTML,但是代码分隔符之间的任何内容都不会被突出显示-关键字(Dim、If、Then、Else等)、字符串等。我知道它看起来应该可以工作,但如果您自己测试一下,就会发现它不能像ASP文件一样进行语法高亮-就好像HTML编辑器硬编码为了以不同的方式处理ASP文件。 - MarkMRM

1

我真的想添加一个评论,因为这不是直接的答案,但显然你需要50个声望才能那样做。

我发现在Visual Studio 2005中(同样在Tools->Options->Text Editor->File Extension中),"Web Form Editor"和"User Control Editor"都可以突出显示HTML和VBScript。

Amadiere提到2010年的"Web Form Editor"没有突出显示VBScript,但也许在2010年中"User Control Editor"也值得一试。


0
在Visual Studio 2010和2012 Express中,当我使用“Microsoft Visual Basic”处理我的.inc文件时效果最佳。然而,与.asp文件不同的是,.inc文件没有自动完成或智能感知(Ctrl+Space、Ctrl+Shift+Space等)。应该定义.inc文件与.asp文件一样处理。

0

我同意Purple Coder的观点:

你不应该将包含ASP代码的文件命名为.inc。这是一个安全风险。任何知道/猜测文件名的人都可以在浏览器中打开它并查看文件内部的实际代码。

但是,在我的情况下,这是一个内部页面,因此不太危险,因为大多数人都会在服务器上找到文件。我也不确定这种命名约定是从哪里来的。它存在于我开始之前。这是在Visual Studio 6上开始的。

但是,为了避免这种风险,有一个简单的解决方案:以与.asp相同的方式在IIS的应用程序映射中添加.inc。


-2

不应将包含ASP代码的文件命名为.inc。这是一种安全风险。任何知道/猜测文件名的人都可以在浏览器中打开它并查看文件内部的实际代码。


你可以告诉你的服务器不公开提供任何文件类型,所以这并不是真的。 - justisb
@jblasco:当你可以简单地使用.asp扩展名时,为什么要依赖服务器配置(和调整它)?给我一个好理由。 - Purple Coder
2
为了语义上表明该文件不是公共可访问的ASP页面,而是一个包含文件。您还可以完全阻止对.inc文件的访问,而如果保留.asp扩展名,则如果直接在其URL上命中,它仍将被提供吗? - justisb
可以给一个文件命名,使其在语义上有意义,同时保留 .asp 扩展名。我也编写 PHP 代码,其他人也是如此,我从未使用过或看到有人使用 *.inc 来表示包含文件。 - Purple Coder
但是用户仍然可以猜测文件名并直接打开.asp页面... 如果您的服务器能够将.inc解析为ASP并且不公开提供它,我真的看不出使用.asp的好处。 - justisb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接