在编写T4,引用envdte时,遇到如下错误,解决方案:右击引用中的envdte,属性中将“嵌入互操作类型”为false,重新编译库即可。
错误信息如下:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 正在运行转换: System.Runtime.Remoting.RemotingException: 无法加载类型“EnvDTE._DTE, SunLibsT4, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”。
Server stack trace:
在 System.Runtime.Remoting.Messaging.MethodCall.ResolveMethod(Boolean bThrowIfNotResolved)
在 System.Runtime.Remoting.Messaging.MethodCall..ctor(SmuggledMethodCallMessage smuggledMsg, ArrayList deserializedArgs)
在 System.Runtime.Remoting.Channels.CrossAppDomainSink.DoDispatch(Byte[] reqStmBuff, SmuggledMethodCallMessage smuggledMcm, SmuggledMethodReturnMessage& smuggledMrm)
在 System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatchCallback(Object[] args)
Exception rethrown at [0]:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 EnvDTE._DTE.get_Solution()
在 SunLibsT4.VsEnvDTE.GetProjItems(DTE dte, String projName) 位置 D:\xxx\SunLibsT4\VsEnvDTE.cs:行号 21
在 Microsoft.VisualStudio.TextTemplating301464833F8C1E60539C53A4CDE228F2844B56753A077BAA39DB6F84A92B0D832E303718B4D9431C01891AB714F71DB232CE4D3452AA69FE5F84AE1492D82E00.GeneratedTextTransformation.TransformText() SunLibsT4.Con D:\xxx\SunLibsT4.Con\TextTemplate4DesignTime.tt 1