单个文件生成器不适用于 Visual Studio 2017 中的 .NET 标准项目

2024-05-23

我已经基于模板 [1] 实现了单个文件生成器(编译为可安装的 VSIX 输出,包括组件的自动注册)并且:

  • 它适用于 VS 2015 和 VS2017 中的经典 .NET 项目;
  • 它适用于 VS2017 中的 .NET Core 项目;
  • 但不适用于 VS2017 中的 .NET Standard 项目。

全部HasCustomTool.xml文件具有相同的配置,所有文件都指定了“自定义工具”属性。

当我看着.csproj文件,我可以看到它们是不同的。 (工作)内容DotNetCore.csproj文件是:

  <ItemGroup>
    <Compile Update="HasCustomTool.cs">
      <DependentUpon>HasCustomTool.xml</DependentUpon>
      <DesignTime>True</DesignTime>
      <AutoGen>True</AutoGen>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <None Update="HasCustomTool.xml">
      <LastGenOutput>HasCustomTool.cs</LastGenOutput>
      <Generator>PtResxErrorTool</Generator>
    </None>
  </ItemGroup>

鉴于DotNetStandard.csproj文件有:

  <ItemGroup>
      <None Update="HasCustomTool.xml">
          <LastGenOutput>HasCustomTool.cs</LastGenOutput>
          <Generator>PtResxErrorTool</Generator>
      </None>
  </ItemGroup>

当您复制标记时DotNetCore.csproj to the DotNetStandard.csproj(手动),你得到了想要的结构——但生成器永远不会被激活。

有人成功为 .NET Standard 项目编写了 VSIX 单文件生成器吗?有关如何调试此问题的任何指示吗?

[1] https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Single_File_Generator https://github.com/Microsoft/VSSDK-Extensibility-Samples/tree/master/Single_File_Generator


您需要向您的类添加一个新的 CodeGeneratorRegistration。

“{9A19103F-16F7-4668-BE54-9A1E7A4F7556}”

就我而言,我的类 decl 看起来像

[ComVisible(true)]
[Guid(GuidList.GuidI18NReactivetring)]
[ProvideObject(typeof(I18NReactive))]
[CodeGeneratorRegistration(typeof(I18NReactive), "I18N.Reactive", vsContextGuids.vsContextGuidVCSProject, GeneratesDesignTimeSource = true)]
[CodeGeneratorRegistration(typeof(I18NReactive), "I18N.Reactive", "{9A19103F-16F7-4668-BE54-9A1E7A4F7556}", GeneratesDesignTimeSource = true)]
public class I18NReactive : IVsSingleFileGenerator, IObjectWithSite
{
}

源信息来自此线程

https://github.com/aspnet/Tooling/issues/394 https://github.com/aspnet/Tooling/issues/394

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单个文件生成器不适用于 Visual Studio 2017 中的 .NET 标准项目 的相关文章

随机推荐