我有我已经建立了一个自定义文件类型语言服务。
另外,我有我的MSBuild项目文件中创建一个自定义的目标(建设行动)。 不过,我无法找到任何方式则默认情况下生成操作关联到我的自定义文件扩展名。
例如,如果你添加一个cs文件,生成操作默认为“编译”。 我想为我做同样的。 即当添加.dsl文件我想生成操作为“生成”,这是我的自定义目标(并因此建立动作)。
是否有不使用项目向导的方式?
我有我已经建立了一个自定义文件类型语言服务。
另外,我有我的MSBuild项目文件中创建一个自定义的目标(建设行动)。 不过,我无法找到任何方式则默认情况下生成操作关联到我的自定义文件扩展名。
例如,如果你添加一个cs文件,生成操作默认为“编译”。 我想为我做同样的。 即当添加.dsl文件我想生成操作为“生成”,这是我的自定义目标(并因此建立动作)。
是否有不使用项目向导的方式?
我认为有以下可能会帮助你和其他人谁是想要做类似的事情。
如果你的最终目标是什么时,你.dsl文件更改生成代码/东西,那么我建议你可以使用“CustomTool”。 这是对任何工程项目的属性。 你编写代码来生成代码,注册发电机组件,然后设置.dsl文件“MyDslToCsGenerator”的customtool财产。
为了在VS注册自定义工具,你必须运行“regasm”实用工具,可提供对MyDslToCsGenerator.dll Net框架
我知道你说你不想使用项模板向导,但如果你已经访问自定义文件模板,那么你可以设置默认生成操作(见下面的第一个链接)
<ProjectItem SubType="" TargetFileName="$fileinputname$.dsl"
ReplaceParameters="true" ItemType="Embedded Resource"
CustomTool="MyDslToCsGenerator">MyFile.dsl</ProjectItem>
你也可以用DTE做到这一点编程( projectItem.Properties.Item("ItemType").Value = "MyOwnBuildActionChoice"
),如下第二连杆解释
有用的网址:
不知道“生成”,我的猜测是你的“自定义生成行动” - 不过,我已经能够通过编程设置任何需要生成操作使用构建引擎API,在构建任务。
所以我们可以说,文件是建立操作设置为“编译”,你可以很容易地将其更改为任何你运行时(建立时间)期间喜欢 - 在我的情况下,我将其设置为“嵌入的资源”。 这种通过关联一个自定义的目标文件,运行你可以写生成任务的代码是可能的。
让我知道,如果它是不明确的,我可以进一步解释,如果你有兴趣。