gpt4 book ai didi

t4 - VS2012 中未找到的 EnvDTE 在 VS2010 中有效

转载 作者:行者123 更新时间:2023-12-03 21:18:10 25 4
gpt4 key购买 nike

我正在使用 EnvDTE 在我的 T4 模板中生成一些代码。

我的代码在 Visual Studio 2010 中正常工作,但是我刚刚开始使用 Visual Studio 2012,现在当我尝试运行我的模板时出现以下错误

Compiling transformation: Metadata file 'EnvDTE.dll' could not be found 

我的项目中实际上没有对 EnvDTE 的引用,因为它是 Silverlight 类库,我无法添加 DLL,但是它以某种方式找到了 DLL。

我不确定 10 和 12 之间的区别是什么导致了这种情况。

以下是我的 ttinclude 文件开头的导入和程序集定义。
<#@ template debug="true" hostSpecific="true" #>
<#@ output extension=".generated.cs" #>
<#@ Assembly Name="EnvDTE.dll" #>
<#@ Assembly Name="System.Data" #>
<#@ import namespace="EnvDTE" #>
<#@ import namespace="System.Data" #>
<#@ import namespace="System.Data.SqlClient" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Text.RegularExpressions" #>

有什么我必须做的不同才能让它适用于 Visual Studio 2012

最佳答案

看来 VS12 无法弄清楚 EnvDTE 在哪里。奇怪的是(正如您在评论中提到的)融合没有发现这一点。也许确实如此,但您没有正确阅读它?

顺便说一句,当融合日志让你失望时,当你无法弄清楚为什么应用程序找不到应该在那里的东西时,是时候打破进程监视器了。

您可以在 T4 模板中提供程序集引用的完整路径。在你的情况下,这将是
<#@ Assembly Name="C:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\envdte.dll" #>
(假设您在正确的位置安装了 EnvDTE)。我不会认为这是一个真正的解决方案,并且会就此向 MS 提出一个 Connect 问题。好像是个bug。

关于t4 - VS2012 中未找到的 EnvDTE 在 VS2010 中有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12176042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com