在編寫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