如何将自定义默认构建操作与Visual Studio中的自定义文件类型相关联?

Dar*_*ord 4 .net msbuild file-type visual-studio

我有一个我为自定义文件类型构建的语言服务.

另外,我在MSBuild项目文件中创建了一个自定义目标(构建操作).但是,我无法找到任何方法将默认情况下的构建操作关联到我的自定义文件扩展名.

例如,如果添加.cs文件,则构建操作默认为"compile".我想为我做同样的事情.即在添加.dsl文件时,我希望构建操作为"Generate",这是我的自定义目标(因此构建操作).

有没有使用项目向导的方法?

Vin*_*Vin 6

我认为以下内容可能会帮助您和其他想要做类似事情的人.

如果您的最终目标是在.dsl文件中发生任何更改时生成代码/某些内容,那么我建议您使用"CustomTool".它是任何项目项目的属性.您编写代码来生成代码,注册Generator程序集,然后将.dsl文件的customtool属性设置为"MyDslToCsGenerator".

要在VS中注册自定义工具,您必须运行"regasm"实用程序,针对MyDslToCsGenerator.dll提供.Net框架


我知道您说您不想使用项目模板向导,但如果您可以访问自定义文件模板,那么您可以设置默认构建操作(请参阅下面的第1个链接)

<ProjectItem SubType="" TargetFileName="$fileinputname$.dsl" 
ReplaceParameters="true" ItemType="Embedded Resource" 
CustomTool="MyDslToCsGenerator">MyFile.dsl</ProjectItem>
Run Code Online (Sandbox Code Playgroud)

您也可以使用DTE(projectItem.Properties.Item("ItemType").Value = "MyOwnBuildActionChoice")以编程方式执行此操作,如下面的第2个链接所述

有用的网址:

  1. 如何为Visual Studio项目模板创建的项目设置构建操作?
  2. 使用DTE设置自定义构建操作