VS 的扩展类型(以及如何)生成 C# 或 C++来自某些文本的代码[更多的是模型]?

发布于 2024-11-25 18:06:47 字数 324 浏览 1 评论 0原文

我是 Visual Studio Extensibility 的新手,想要制作一个插件/扩展来执行以下操作:

  1. 它应该读取具有特定文件扩展名的所有文件(假设“*.ump”)。
  2. 它应该处理文件中的文本/代码/任何内容。
  3. 它应该创建新的类/代码文件,其中包含一些代码。 [代码将在步骤 2 中生成,只需要知道如何执行即可?]

然而,我一直在通过可扩展性绞尽脑汁,看到了单个文件生成器......以及通过 ProjectItems 并可以检测到的插件文件扩展名, 但我还没有找到关于如何或做什么的完整教程、指南或解释!

请帮忙...

I am new to Visual Studio Extensibility and want to make an addin/extension which shall do the following:

  1. It should read all the files with a specific file extension (assume "*.ump").
  2. It should process the text/code/whatever in the files.
  3. It should create new Class/Code file with some code in it. [The code will be produced in step 2, just need to know how to do it?]

Yet, I have been racking my brains through extensibility, saw the single file generators .... and addins which go through ProjectItems and can detect the file extension,
BUT I HAVE NOT BEEN ABLE TO FIND a complete tutorial, guide or explanation as to how or what to do!!

Please help...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

偏闹i 2024-12-02 18:06:47
  1. 您不想读取 Visual C++ 项目或标准 Visual C# 项目中具有特定文件扩展名的所有文件。您可以使用手工制作的 MSBuild 项目(包含在解决方案中)来做到这一点。
  2. 在 Visual C++ 项目中,有一种方法可以定义自定义工具。它们作为单独的进程运行,因此您可以以任何您想要的方式实现它们。当您添加扩展名未知的文件时,Studio 会询问您是否要定义一个工具(它们在特殊的 xml 文件中定义;Studio 有用于编辑它们的对话框)。在 Visual C# 项目中,只需手动编写 MSBuild 任务并将其插入到项目中即可。
  3. 做任何你想做的事。 IIRC 生成的文件必须包含在项目中。好吧,对于 MSBuild,只需根据您的意愿调整项目即可,但在 Visual C++ 中则必须这样做。
  4. 您可以将 MSBuild(csproj、vbproj)和 VisualC++ 项目组合在一个解决方案中,因此我建议单独使用。
  5. 如果您发现需要针对无法使用 Visual Studio 的不同目标进行编译,您会很高兴您拥有只是从 Studio 调用的独立工具,而不是嵌入其中的东西。
  1. You don't want to read all files with a specific file extension in Visual C++ project nor standard Visual C# project. You may do that with hand-made MSBuild project (included in the solution).
  2. In Visual C++ projects, there is a way to define custom tools. They are run as separate processes, so you can implement them in anything you want. Studio will ask you whether you want to define a tool (they are defined in special xml files; studio has dialog for editing them) when you add a file with extension unknown to it. In Visual C# projects, just manually write a MSBuild tasks and insert them into the project.
  3. Do whatever you want. IIRC the generated files will have to be included in the project though. Well, for MSBuild, just tweak the project to your heart's desire, but in Visual C++ they have to.
  4. You can combine MSBuild (csproj,vbproj) and VisualC++ projects in a single solution, so I recommend using separate.
  5. If you ever find out you need to compile for different target where you can't use Visual Studio, you'll be glad that you have stand-alone tool you were just calling from Studio and not something that embeds in it.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文