单个文件生成器示例

时间:2016-05-10 21:26:09

标签: c# visual-studio

我想在Visual Studio中实现单个文件生成器(也就是自定义工具)。

在过去的几天里,我检查了大量的例子。 到目前为止,我已经设法没有成功运行这些。 今晚我发现这里看起来最好的例子...... https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Single_File_Generator

readme.md文件包含一系列要使其工作的步骤。 但是,根据我迄今为止尝试的其他每个例子,结果都是一样的。

  

在此系统上找不到自定义工具'XmlClassGenerator'。

我已经尝试过堆栈溢出,代码项目,各种博客和现在github的示例。所有这些都以相同的结果结束。我仔细阅读了注册表,寻找我的类guid,看看是否按照我所遵循的所有示例(包括MSDN网站)的说明安装了所有内容。

每一次,我都以同样的挫败感结束。任何人都可以帮助让这个例子有效吗?

以下是我遵循的步骤

  1. 已下载VSSDK-Extensibility-Samples-master.zip。
  2. 提取拉链。
  3. 以管理员模式运行Visual Studio 2015。
  4. 打开VSSDK-Extensibility-Samples-master \ Single_File_Generator \ C#\ GeneratorSample.sln
  5. 执行nuget restore,并更新
  6. 编译解决方案
  7. 按照readme.md
  8. 中的步骤进行操作

    以下是我遵循的readme.md文件中的步骤

    1. 要运行示例,请按F5或选择Debug>启动调试菜单命令。 Visual Studio的新实验实例将启动。
    2. 加载后,创建一个新项目。例如:_ WpfApplication _
    3. 将新的XML文件添加到项目中。文件>添加>新文件
    4. 使用XmlClassGeneratorSchema.xsd中的架构使用内容填充新的XML文件。有关工作示例,请将Example.XmlFile.xml中的代码复制/粘贴到新的XML文件中。
    5. 打开xml文件的“属性”窗口,并将CustomTool设置为XmlClassGenerator。
    6. 保存XML文件。这会触发单个文件生成器运行并生成新的C#文件。
    7. 新的C#文件将添加到项目中,其名称与XML文件相同。此新文件作为原始XML文件节点的依赖项显示在解决方案资源管理器中。
    8. 任何错误都将在错误列表工具窗口中报告。
    9. 我还建立了一个安装了Windows 10 pro N的全新虚拟机,以及visual studio 2015社区版,所以我在两台单独的机器上尝试了相同的结果。对于那些对第4步感兴趣的人,我使用了Example.XmlFile.xml的内容。

      进一步更新。

      此外,我已经在解决方案上执行了一个nuget up日期,因为有几个可用的更新。

      接下来,我在解决方案构建属性中添加了“Register for COM Interop”标志。

      执行C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ RegAsm.exe / tlb Microsoft.VisualStudio.Shell.Interop.dll

      此时仍有同样的问题。但至少一切都是最新的和建设。

      接下来,我在注册表上执行搜索,以查看guid是否已正确注册。 我已经手动将项添加到HKey_Local_Machine \ Software \ Wow6432node \ Microsoft \ VisualStudio \ 14.0 \ Generators {FAE04EC1 ...} \ XmlClassGenerator下的generator注册表项中 它具有CLSID和GeneratesDesignTimeSource

      的值

      此时,我仍然收到相同的错误“无法在此系统上找到自定义工具'XmlClassGenerator'。

      我正在尝试的最后一件事是将注册表内容放在

      HKEY_CURRENT_USER \ SOFTWARE \微软\ VisualStudio的\ 14.0_config \发电机{FAE0 ...} \ XmlClassGenerator

      再次,这没有效果。

      我必须尝试的最后一件事。我刚刚将GeneratorSample.dll添加到GAC并再次没有效果。

1 个答案:

答案 0 :(得分:2)

经过多次环顾四周,苦苦挣扎。我决定按照这个指南来写这封信,它确实奏效了。

http://www.codeproject.com/Tips/1023337/Custom-Tool-Single-File-Generator-for-Visual-Studi

我所做的与上述不同的是将dll放在c:\ program files \ Tool中。此外,我还将注册表项仅放在HKey_Current_User .... \ 14.0_Config \ Generators