[vs2017中运行自定义工具时出现T4错误

问题描述 投票:0回答:1

[我想从vs2017运行以下命令“运行Cosutom工具”时确实有问题。

VS更新后停止工作。

而不是运行T4并生成与此文件相关的所有代码。输出文件将包含以下错误消息:

类型'Microsoft.VisualStudio.Data.Tools.Package.Internal.OAFileItem'在程序集“ Microsoft.VisualStudio.Data.Tools.Package”中,版本= 15.1.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a'是未标记为可序列化。

完整错误消息:

严重级别描述项目文件行抑制状态运行转换错误:System.Runtime.Serialization.SerializationException:类型``Microsoft.VisualStudio.Data.Tools.Package.Internal.OAFileItem''程序集'Microsoft.VisualStudio.Data.Tools.Package,Version = 15.1.0.0,文化=中性,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化。

服务器堆栈跟踪:位于System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType类型)System.Runtime.Serialization.FormatterServices。<> c__DisplayClass9_0.b__0(MemberHolder_)在System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory)在System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type类型,StreamingContext上下文)System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()在System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Objectobj,ISurrogateSelector surrogateSelector,StreamingContext上下文,SerObjectInfoInit serObjectInfoInit,IFormatterConverter转换器,ObjectWriter objectWriter,SerializationBinder活页夹)System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Objectobj,ISurrogateSelector surrogateSelector,StreamingContext上下文,SerObjectInfoInit serObjectInfoInit,IFormatterConverter转换器,ObjectWriter objectWriter,SerializationBinder活页夹)System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object图,Header [] inHeaders,__ BinaryWriter serWriter,布尔值fCheck)在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(流serializationStream,对象图,Header []标头,布尔值fCheck)在System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeMessageParts(ArrayListargsToSerialize)System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage..ctor(IMethodReturnMessagemrm)System.Runtime.Remoting.Messaging.SmuggledMethodReturnMessage.SmuggleIfPossible(IMessage味精)System.Runtime.Remoting.Channels.CrossAppDomainSink.DoDispatch(Byte []reqStmBuff,SmuggledMethodCallMessage smuggledMcm,SmuggledMethodReturnMessage&smuggledMrm),网址为System.Runtime.Remoting.Channels.CrossAppDomainSink.DoTransitionDispatchCallback(Object []args)

在[0]处抛出异常:在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessagereqMsg,IMessage retMsg)System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&msgData,Int32类型)位于EnvDTE._Solution.FindProjectItem(StringFileName)位于Microsoft.VisualStudio.TextTemplating6FCAD03755FEA2CF76F69000C72CACC8E11DA21396664770DDB2AE835D7A8E82309989CCBC13688F6AC52D362D892E524A6D1554F901D313ED8AA1C0920ED56C.GeneratedTextTransformation.Manager.Host.Host主机,StringBuilder模板)位于Microsoft.VisualStudio.TextTemplating6FCAD03755FEA2CF76F69000C72CACC8E11DA21396664770DDB2AE835D7A8E82309989CCBC13688F6AC52D362D892E524A6D1554F901D313ED8AA1C0920ED56C.GeneratedTextTransformation.Manager.Create(ITextTemplating主机,StringBuilder模板)位于Microsoft.VisualStudio.TextTemplating6FCAD03755FEA2CF76F69000C72CACC8E11DA21396664770DDB2AE835D7A8E82309989CCBC13688F6AC52D362D892E524A6D1554F901D313ED8AA1C0920ED56C.GeneratedTextTransformation.TransformTextX(Text)\ TextData(Text)1阶段D:

我想从vs2017运行以下命令“运行Cosutom工具”时确实出现问题。 VS更新后它将停止工作。而不是运行T4并生成与此相关的所有代码...

c# .net visual-studio visual-studio-2017 t4
1个回答
0
投票

在我的T4中,我使用的是var dte = (DTE) hostServiceProvider.GetService(typeof(DTE));,而我改用了var dte = (DTE) hostServiceProvider.GetCOMService(typeof(DTE));

© www.soinside.com 2019 - 2024. All rights reserved.