Преобразование TT завершается неудачно при загрузке EnvDTE._Solution - PullRequest
2 голосов
/ 08 октября 2019

Мы используем шаблоны T4 в нашем проекте для генерации кода C #. Шаблоны проверяют текущее решение и проекты с использованием DTE следующим образом:

DTE dte = (DTE)((IServiceProvider)Host).GetService(typeof(DTE)); 
Solution solution = dte.Solution; 
Project project = solution.Project("...");

Недавно двигатель начал отказывать с ошибкой ниже. Не было никаких изменений в шаблоне или соответствующем коде, поэтому я считаю, что это связано с некоторыми обновлениями Visual Studio / .NET. Но я понятия не имею, как это исправить.

Severity    Code    Description Project File    Line    Suppression State
Error       Running transformation: System.Runtime.Remoting.RemotingException: Cannot load type 'EnvDTE._Solution, CodeGenerationUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Server stack trace: 
   at System.Runtime.Remoting.Messaging.MethodCall.ResolveMethod(Boolean bThrowIfNotResolved)
   at System.Runtime.Remoting.Messaging.MethodCall..ctor(SmuggledMethodCallMessage smuggledMsg, ArrayList deserializedArgs)
   at System.Runtime.Remoting.Channels.CrossAppDomainSink.DoDispatch(Byte[] reqStmBuff, SmuggledMethodCallMessage smuggledMcm, SmuggledMethodReturnMessage& smuggledMrm)
   at System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatchCallback(Object[] args)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at EnvDTE._Solution.get_Projects()
   at XXXXX.CodeNavigator.Projects(Solution solution) in C:\XXXXX\CodeNavigator.cs:line 29
   at XXXXX.CodeNavigator.Project(Solution solution, String name) in C:\XXXXX\CodeNavigator.cs:line 24
   at Microsoft.VisualStudio.TextTemplating7C92645F4B28BF7FDF611D165F2230AA45B6BB3184F9527C2F8B592506527D4AC5FBE363A1B068750F0082F78E0BBE35E12B9F21E89803E59119D9A2834641A7.GeneratedTextTransformation.TransformText() 
...