我有正在从VS2019更新到VS2022的an extension。它是一个使用Modeling SDK的领域特定语言,并通过T4模板生成代码。
我对它进行了很大程度的转换,但在运行T4s时,我得到
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
文件中,也没有在我的Dsl
或DslPackage
项目中引用它们,但我从其他一些必须解决的错误中了解到,EnvDTE8.0
和Microsoft.VisualStudio.Interop
作为环境VS2022环境的一部分是隐式可用的。因为它们不是我的项目的一部分,所以我不能使用Visual Studio Alias
机制来消除歧义。
我已经阅读了关于类似问题的其他问题,但没有一个是这个问题,他们的解决方案真的不适用。
感谢任何人能给予的任何帮助或指导。
发布于 2021-11-15 16:02:49
今天我的T4模板也遇到了类似的问题。在看了你的帖子后,花了几分钟的时间,我尝试了下面的方法
我找到了添加EnvDTE
程序集的文件
<#@ assembly name="EnvDTE"#>
并将其更改为
<#@ assembly name="Microsoft.VisualStudio.Interop"#>
这解决了我的问题。
https://stackoverflow.com/questions/69975013
复制相似问题