Visual Studio 2022 用.net 5.0 创建T4模板 遇到的两个问题 (未能加载文件或程序集“EnvDTE 、未标记为可序列化)

  • Post author:
  • Post category:其他


Visual Studio 2022 用.net 5.0 创建T4模板 遇到的两个问题



Visual Studio 2022 用.net 5.0 创建T4模板 遇到的两个问题

安装了Visual Studio 2022 用.net 5.0 创建了项目,项目中的T4模板报错



1.未能加载文件或程序集“EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件

在这里插入图片描述

解决方案:<#@ assembly name=“EnvDTE”#> 修改成

<#@ assembly name=“Microsoft.VisualStudio.Interop”#>

借鉴:

https://cloud.tencent.com/developer/ask/sof/411286



2.正在运行转换: System.Runtime.Serialization.SerializationException: 程序集“Microsoft.VisualStudio.ProjectSystem.VS.Implementation, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”中的类型“Microsoft.VisualStudio.ProjectSystem.VS.Implementation.Package.Automation.OAProjectItem”未标记为可序列化。

解决方案:

  找到这一行
  EnvDTE.DTE dte = (EnvDTE.DTE)hostServiceProvider.GetService(typeof(EnvDTE.DTE));
修改成:
EnvDTE.DTE dte = (EnvDTE.DTE)hostServiceProvider.GetCOMService(typeof(EnvDTE.DTE));

借鉴:

https://qa.1r1g.com/sf/ask/2870036711/

自己记录一下,希望对其他人也有帮助



版权声明:本文为EncourageMe原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。