发布
社区首页 >问答首页 >程序集扩展性:如何在T4模板执行中解析“类型'XXX‘同时存在于’VS2022 1‘和'Assembly2’中

程序集扩展性:如何在T4模板执行中解析“类型'XXX‘同时存在于’VS2022 1‘和'Assembly2’中
EN

Stack Overflow用户
提问于 2021-11-15 13:17:34
回答 1查看 686关注 0票数 2

我有正在从VS2019更新到VS2022的an extension。它是一个使用Modeling SDK的领域特定语言,并通过T4模板生成代码。

我对它进行了很大程度的转换,但在运行T4s时,我得到

代码语言:javascript
代码运行次数:0
复制
Compiling transformation: The type 'SourceControl' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Compiling transformation: The type 'Project' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'      
Compiling transformation: The type 'Constants' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'    
Compiling transformation: The type 'ProjectItem' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'  
Compiling transformation: The type 'ProjectItems' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
Compiling transformation: The type 'DTE' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'          
Compiling transformation: The type 'Solution' exists in both 'EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'Microsoft.VisualStudio.Interop, Version=17.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'     

想不出该怎么解决这个问题。

我没有将这些程序集包括在我的主.tt文件中,也没有在我的DslDslPackage项目中引用它们,但我从其他一些必须解决的错误中了解到,EnvDTE8.0Microsoft.VisualStudio.Interop作为环境VS2022环境的一部分是隐式可用的。因为它们不是我的项目的一部分,所以我不能使用Visual Studio Alias机制来消除歧义。

我已经阅读了关于类似问题的其他问题,但没有一个是这个问题,他们的解决方案真的不适用。

感谢任何人能给予的任何帮助或指导。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-15 16:02:49

今天我的T4模板也遇到了类似的问题。在看了你的帖子后,花了几分钟的时间,我尝试了下面的方法

我找到了添加EnvDTE程序集的文件

代码语言:javascript
代码运行次数:0
复制
<#@ assembly name="EnvDTE"#>

并将其更改为

代码语言:javascript
代码运行次数:0
复制
<#@ assembly name="Microsoft.VisualStudio.Interop"#>

这解决了我的问题。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69975013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档