c# - Visual Studio 2012/VS11 是否有自定义语言加载项?

标签 c# vb.net visual-c++ visual-studio-2012 visual-studio-addins

我想添加对 the PAWN language 的支持到 Visual Studio 2012。

但由于缺乏经验和缺乏教程/加载项,我可以编辑它确实是一项艰巨的任务。

现在我只想添加文件类型和编译器,不需要智能感知,语法高亮可以使用 C 语法高亮器。

我知道有 OOK 语言实现和 Boo 语言,但这些插件适用于 VS2010,不会为 VS2012 编译。

我将如何完成这个?

是否有我可以编辑/用作基础/用作示例的语言插件(适用于 VS2012)?

我最后一次尝试导致出现黑色窗口/无法使用 VS2012 IDE。

最佳答案

官方语言extension sample对于 Visual Studio 2010 是 Iron Python集成示例。

您可以从这里下载:IronPython Integration .这里有一个相关的文档:Visual Studio IronPython Integration Deep Dive

很遗憾,据我所知,此示例并未针对 Visual Studio 2012 进行更新。然而,这里是将其转换为 Visual Studio 2012 的步骤。

  1. 从此处安装 Visual Studio 2012 SDK:Microsoft Visual Studio 2012 SDK
  2. 下载 Iron Python 集成示例,解压到磁盘上的某个位置
  3. 打开IronPython.sln,接受所有升级转换
  4. 将项目的平台目标从 AnyCpu 更改为 x86
  5. 某些项目对 Visual Studio 11 程序集(针对 .NET 4.5 构建)的引用不正确(自动提示),因此它们无法按原样编译。将它们改回 Visual Studio 10 程序集。例如,IronPython.Console 项目中的 Microsoft.VisualStudio.ExtensibilityHosting.dll 需要指向 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies 中的等效文件。
  6. IronPython.Project 项目定义为启动项目,并更新其调试参数:启动操作需要启动C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe (VS 2012 shell) 外部程序而不是 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe (VS 2010 shell) 默认设置的一个。命令行参数应设置为 /RootSuffix Exp
  7. 更新所有基本模板以使用 VS 2012 目录而不是仅使用 VS 2010 目录:在所有 .pyproj 文件中搜索 IronPython.targets 字符串并添加 VS 2012 案例,如下所示:<

之前:

  <PropertyGroup>
    <!-- Set the IronPythonPath property by proving in different locations where Iron Python could be installed -->
    <!-- Regular LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
    <!-- Experimental LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Integrated Shell -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0\IronPython.targets')">$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0</IronPythonPath>
  </PropertyGroup>

之后:

  <PropertyGroup>
    <!-- Set the IronPythonPath property by proving in different locations where Iron Python could be installed -->
    <!-- Regular LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
    <!-- Experimental LocalAppData -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Regular LocalAppData VS10212 -->
      <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\11.0\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\11.0\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Experimental LocalAppData VS2012-->
      <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(LocalAppData)\Microsoft\VisualStudio\11.0Exp\Extensions\Microsoft\IronPython\1.0\IronPython.targets')">$(LocalAppData)\Microsoft\VisualStudio\11.0Exp\Extensions\Microsoft\IronPython\1.0</IronPythonPath>
      <!-- Integrated Shell -->
    <IronPythonPath Condition=" '$(IronPythonPath)' == '' AND Exists('$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0\IronPython.targets')">$(MSBuildExtensionsPath)\Microsoft\IronPython Studio 2010\1.0</IronPythonPath>
  </PropertyGroup>

就是这样。编译并运行(由于注册问题,第一次都需要一段时间)。

这是从 Visual Studio 2012 启动新的 Iron Python 项目时的结果: enter image description here

构建时: enter image description here

关于c# - Visual Studio 2012/VS11 是否有自定义语言加载项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14087937/

相关文章:

visual-c++ - #pragma 部分和属性

c# - SQL CE 4 (CTP) 是否支持使用 System.Transaction 命名空间的环境事务?

vb.net - 需要帮助创建一个简单的数学测验 (Visual Basic)

c# - 如何在富文本框的文本字符串中添加 rtf 格式?

c++ - wxWidgets 和 VC++

C++ 对象引用未设置为对象的实例

c# - 使用(而非滥用)ContinueWith

c# - Entity Framework - 在 Seed() 方法中实现一对多外键关系

C# : Console. Read() 未获取 "right"输入

c# - 将 Visual Basic (.net 1.1) 项目转换为 C#