[我想从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.ConcurrentDictionary
2.GetOrAdd(TKey key, Func
2 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并生成与此相关的所有代码...
在我的T4中,我使用的是var dte = (DTE) hostServiceProvider.GetService(typeof(DTE));
,而我改用了var dte = (DTE) hostServiceProvider.GetCOMService(typeof(DTE));