簡體   English   中英

如何將自定義默認構建操作與Visual Studio中的自定義文件類型相關聯?

[英]How do I associate a custom default build action to a custom file type in Visual Studio?

我有一個我為自定義文件類型構建的語言服務。

另外,我在MSBuild項目文件中創建了一個自定義目標(構建操作)。 但是,我無法找到任何方法將默認情況下的構建操作關聯到我的自定義文件擴展名。

例如,如果添加.cs文件,則構建操作默認為“compile”。 我想為我做同樣的事情。 即在添加.dsl文件時,我希望構建操作為“Generate”,這是我的自定義目標(因此構建操作)。

有沒有使用項目向導的方法?

我認為以下內容可能會幫助您和其他想要做類似事情的人。

如果您的最終目標是在.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>

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

有用的網址:

  1. 如何為Visual Studio項目模板創建的項目設置構建操作?
  2. 使用DTE設置自定義構建操作

不確定“生成”,我猜是你的“自定義構建操作” - 但是,我已經能夠在構建任務中使用構建引擎API以編程方式設置任何所需的構建操作。

因此,假設文件的構建操作設置為“編譯”,您可以在運行時(構建時)將其輕松更改為您喜歡的任何內容 - 在我的情況下,我將其設置為“嵌入式資源”。 這可以通過關聯自定義目標文件來實現,該文件運行您可以編寫的構建任務代碼。

如果不清楚,請告訴我,如果您有興趣,我可以進一步解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM