将生成C#的自定义工具集成到Visual Studio中

将生成C#的自定义工具集成到Visual Studio中,c#,visual-studio,C#,Visual Studio,我有一个自定义工具,可以生成强类型C#数据结构来访问各种外部数据源。我想将其集成到VS中,以便自动找到并编译生成的源代码,并在IntelliSense中显示(正如我看到的其他工具所做的,如T4)。这是一个开源项目,要分发 目前该工具使用命令行参数,但它可以轻松地读取配置文件,从而提供一个方便的钩子。我可以作为一个预构建步骤来做,但是设置起来不太方便。我可以将其重写为T4宏,但这有点忽略了重点 我知道根据为代码隐藏编写自定义工具。这需要大量的工作,尤其是编写要分发的安装程序 我希望有一个我不知道的

我有一个自定义工具,可以生成强类型C#数据结构来访问各种外部数据源。我想将其集成到VS中,以便自动找到并编译生成的源代码,并在IntelliSense中显示(正如我看到的其他工具所做的,如T4)。这是一个开源项目,要分发

目前该工具使用命令行参数,但它可以轻松地读取配置文件,从而提供一个方便的钩子。我可以作为一个预构建步骤来做,但是设置起来不太方便。我可以将其重写为T4宏,但这有点忽略了重点

我知道根据为代码隐藏编写自定义工具。这需要大量的工作,尤其是编写要分发的安装程序


我希望有一个我不知道的好方法来实现这一点。

您的最终用户是否希望编辑该工具生成的C代码,还是应该保持只读?实际上,如果您使用或,编写一个注册COM组件并为VS添加一些注册表值的安装程序是轻而易举的事。我认为“自定义工具”可能是最好的方法。@dasblinkenlight:不,输出只是模板化的类定义,手工编写很费劲。编辑它们毫无意义(除非工具出错!)@karl:我想我更关心的是用户体验。目前,我只使用NuGet在Msbuild期间安装的基于项目的组件,而且很容易测试。对用户来说,先安装一个VS再重新启动是一个更大的要求,而且更难测试。任何类型的VS集成都需要以这样或那样的方式安装,不确定您将如何解决。您可以在安装nuget软件包时运行powershell脚本,这样您就可以将其与普通软件包捆绑在一起(或者只显示一个页面,告诉您的用户扩展可用)。您的最终用户是希望编辑工具生成的C#代码,还是应该保持只读?实际上,如果使用或,编写一个注册COM组件并为VS添加一些注册表值的安装程序是轻而易举的事。我认为“自定义工具”可能是最好的方法。@dasblinkenlight:不,输出只是模板化的类定义,手工编写很费劲。编辑它们毫无意义(除非工具出错!)@karl:我想我更关心的是用户体验。目前,我只使用NuGet在Msbuild期间安装的基于项目的组件,而且很容易测试。对用户来说,先安装一个VS再重新启动是一个更大的要求,而且更难测试。任何类型的VS集成都需要以这样或那样的方式安装,不确定您将如何解决。您可以在安装nuget软件包时运行powershell脚本,因此您可以将其与普通软件包捆绑在一起(或者只显示一个页面,告诉用户扩展可用)。