如何:创建域特定语言解决方案

通过使用专用 Visual Studio 解决方案,创建域特定语言 (DSL)。

必备组件

在启动此过程之前,必须先安装以下组件:

Visual Studio

https://go.microsoft.com/fwlink/?LinkID=185579

Visual Studio SDK

https://go.microsoft.com/fwlink/?LinkID=185580

Visual Studio 可视化和建模 SDK

https://go.microsoft.com/fwlink/?LinkID=185581

创建一个域特定语言解决方案

若要创建域特定的语言解决方案

  1. 启动 DSL 向导。

    1. 在**“文件”菜单上指向“新建”,再单击“项目”**。

    2. 此时将出现**“新建项目”**对话框。

    3. 在**“项目类型”窗格中下,展开“其他项目类型”节点,然后单击“扩展性”**。

    4. 单击**“域特定语言设计器”**。

    5. 在**“名称”框中,键入解决方案名称。 单击“确定”**。

      **“域特定语言设计器向导”**显示。

      备注

      您输入的名称最好是一个有效的 Visual C# 标识符,因为它可能被用于生成代码。

    “创建 DSL”对话框

  2. 选择域特定语言(DSL)模板。

    在**“选择域特定语言选项”页上,选择一个解决方案模板例如“最小的语言”**。 选择与要创建的 DSL 类似的模板。

    有关这些解决方案模板的更多信息,请参见选择域特定语言解决方案模板

  3. 在**“文件扩展名”页输入一个文件扩展名。 它应该是在您的计算机,以及在您要安装 DSL 的所有计算机上是唯一的。 您应该会看到该消息“应用程序或 Visual Studio 编辑器不使用此扩展”**。

    • 如果使用了以前的、未完全安装的实验 DSL 使用的文件扩展名,您可以使用在 Visual Studio SDK 菜单中的 “重置试验实例” 工具来清除它们。

    • 如果其它使用此文件扩展名的 Visual Studio 扩展在您的计算机上都已完全安装,请考虑将其卸载。 在**“工具”菜单上,单击“扩展管理器”**。

  4. 检查并根据需要调整在向导的其余页的字段。 当您对设置满意后,请单击**“完成”**。 有关设置的更多信息,请参见 DSL 设计器向导页。

    向导创建具有两个项目的解决方案,这两个项目名分别为 DSLDslPackage

    备注

    如果看到消息预警您不要运行来自于不受信任源的文本模板,单击 “确定”。可以将此消息设置为不再出现。

DSL 设计器向导页

您可以从其默认值中省去几种未更改的字段。 但是,请确保你设置了文件扩展名字段。

Bb126593.collapse_all(zh-cn,VS.110).gif解决方案设置页

  • “想要将哪个模板作为您的域特定语言的依据?”
    选择与要创建的 DSL 类似的模板。 不同的模板提供方便的起始点。 选择解决方案模板时,向导将显示说明。 有关这些解决方案模板的更多信息,请参见选择域特定语言解决方案模板

  • 要如何命名您的域特定语言?
    默认为该解决方案名称。 编码由此值生成。 作为 C# 类名,它必须是有效的。

Bb126593.collapse_all(zh-cn,VS.110).gif文件扩展页

  • 模型文件应使用哪些扩展名?
    键入新的文件扩展名。

    验证此文件扩展名尚未注册使用此计算机,如下:

    在**“注册的处理此扩展的其他工具和应用程序”**下查找。 如果看到消息 “应用程序或 Visual Studio 编辑器不使用此扩展”,则可以使用此文件扩展名。

    如果看到工具或包列表,应执行以下操作之一:

    • 键入不同的文件扩展名。

      - 或 -

    • 重置 Visual Studio 中的实验实例。 这将注销以前生成的所有 DSL。 在**“启动”菜单上,依次单击“所有程序”“Microsoft Visual Studio 2010 SDK”“工具”,然后单击“重置 Microsoft Visual Studio 2010 实验实例”**。 您可以重新生成要再次使用的其他 DSL。

      - 或 -

    • 如果使用此文件扩展名的 Visual Studio 扩展在您的计算机上都已完全安装,请将其卸载。 在**“工具”菜单上,单击“扩展管理器”**。

Bb126593.collapse_all(zh-cn,VS.110).gif产品设置页

  • 新的域特定语言所属产品名称是什么?
    默认为该 DSL 名。

    此值用于Windows资源管理器(或文件Explorer)描述该文件扩展名的文件。

  • 产品所属公司名称是什么?
    公司名称。

    此值合并到的 DSL 包中的 AssemblyInfo 属性。

  • 在此解决方案中,如何为项目的根命名空间?
    此默认为由您的公司名称和产品名称组成的名称。

Bb126593.collapse_all(zh-cn,VS.110).gif“签名”页

  • “创建一个强名称密钥文件”
    默认选项创建新的关键字以对您的DSL程序集进行签名。

  • “请使用现有的强名称密钥文件”
    如果您想要集成你的 DSL 和另一个程序集,请使用该选项。

有关更多信息,请参见 Creating and Using Strong-Named Assemblies

请参见

概念

如何定义域特定语言

其他资源

Domain-Specific Language Tools Glossary