Ошибка T4 при запуске Custom Tool в vs2017 - PullRequest
0 голосов
/ 28 октября 2019

У меня возникает проблема, когда я хочу запустить следующую команду «Запустить Cosutom Tool» из vs2017.

Он перестает работать после обновления VS.

Вместо запуска T4 игенерировать весь код, связанный с этим файлом. Выходной файл будет содержать следующее сообщение об ошибке:

Введите «Microsoft.VisualStudio.Data.Tools.Package.Internal.OAFileItem» в сборке «Microsoft.VisualStudio.Data.Tools.Package, Version =15.1.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a 'не помечен как сериализуемый.

Полное сообщение об ошибке:

Код серьезности Описание Проект Состояние файла Ошибка подавления строки Выполнениепреобразование: System.Runtime.Serialization.SerializationException: введите «Microsoft.VisualStudio.Data.Tools.Package.Internal.OAFileItem» в сборке «Microsoft.VisualStudio.Data.Tools.Package, версия = 15.1.0.0, культура = нейтральная, PublicKeyToken= b03f5f7f11d50a3a 'не помечен как сериализуемый.

Трассировка стека сервера: в System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers (тип RuntimeType) в System.Runtime.Serialization.FormatterServices. <> c_0_D0) в System.Collections.Concurrent.ConcurrentDictionary 2.GetOrAdd(TKey key, Func 2 valueFactory) в System.Runtime.Serialization.FormatterServices.GetSerializableMembers (Тип тип, контекст StreamingContext) в System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo () в System.Runtime.SinaryizationForFor. .WriteObjectInfo.InitSerialize (Object obj, ISurrogateSelector surrogateSelector, контекст StreamingContext, SerObjectInfoInit serObjectInfoInit, преобразователь IFormatterConverter, объектWriter ObjectWriter, связыватель SerializationBinder) в System.Runtime.SegniteTextSignate.Wire.SiteSerObjectInfoInit serObjectInfoInit, преобразователь IFormatterConverter, ObjectWriter (объектный объект (связыватель SerializationBinder)) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize (граф объектов, заголовок [] inHeaders, __BinaryWriter serWrithele), буфер загрузки.Formatters.Binary.BinaryFormatter.Serialize (поток serializationStream, граф объектов, заголовки Header [], логическое значение fCheck)
в System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeMessageParts (arrayList argsToSerialize) в System.Runtime.Remoting.Messurn.MesshoMMessMrMedgedRessledRessledRessledMRM) при System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage.SmuggleIfPossible (Шеззаде MSG) в System.Runtime.Remoting.Channels.CrossAppDomainSink.DoDispatch (байт [] reqStmBuff, SmuggledMethodCallMessage smuggledMcm, SmuggledMethodReturnMessage & smuggledMrm) в System.Runtime.Remoting.Channels.CrossAppDomainSink. .RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) в EnvDTE._Solution.FindProjectItem (String FileName) в Microsoft.VisualStudio.TextTemplating6FCAD03755FEA2CF76F69000C72CACC8E11DA21396664770DDB2AE835D7A8E82309989CCBC13688F6AC52D362D892E524A6D1554F901D313ED8AA1C0920ED56C.GeneratedTextTransformation.Manager.VSManager..ctor (ITextTemplatingEngineHost хозяин, шаблон StringBuilder) при Microsoft.VisualStudio.TextTemplating6FCAD03755FEA2CF76F69000C72CACC8E11DA21396664770DDB2AE835D7A8E82309989CCBC13688F6AC52D362D892E524A6D1554F901D313ED8AA1C0920ED56C.GeneratedTextTransformation.Manager.Create (ITextTemplatingEngineHost хоста, StringBuilder шаблон) вMicrosoft.VisualStudio.TextTemplating6FCAD03755FEA2CF76F69000C72CACC8E11DA21396664770DDB2AE835D7A8E82309989CCBC13688F6AC52D362D892E524A6D1554F901D313ED8AA1C0920ED56C.GeneratedTextTransformation.TransformText () Постановка D: \ XXXXXXX \ MedatadataGeneratedObjects.tt 1

1 Ответ

1 голос
/ 29 октября 2019

В моем Т4 я использовал var dte = (DTE) hostServiceProvider.GetService(typeof(DTE)); Я переключился на var dte = (DTE) hostServiceProvider.GetCOMService(typeof(DTE));

...