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/
自己记录一下,希望对其他人也有帮助
博客作者在VisualStudio2022中使用.NET5.0创建T4模板时遇到了两个问题:1. EnvDTE程序集加载失败,通过将引用改为Microsoft.VisualStudio.Interop解决;2. 类型OAProjectItem未标记为可序列化,通过将获取DTE的方式更改为GetCOMService解决。作者分享了解决方案并希望对他人有所帮助。
6087

被折叠的 条评论
为什么被折叠?



