Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 使用MSBuild并行生成的问题_Multithreading_Visual Studio_Serialization_Msbuild_Parallels - Fatal编程技术网

Multithreading 使用MSBuild并行生成的问题

Multithreading 使用MSBuild并行生成的问题,multithreading,visual-studio,serialization,msbuild,parallels,Multithreading,Visual Studio,Serialization,Msbuild,Parallels,我们已尝试运行下一个命令: MSBuild.exe ..\src\YaccConstructor.WithoutTests.sln /t:Build /m:8 /v:q /p:Optimize="True" /p:DebugSymbols="True" /p:Configuration="Release" /logger:Fake.MsBuildLogger+TeamCityLogger,"C:\Users\User\Documents\Project\recursive-ascent\tool

我们已尝试运行下一个命令:

MSBuild.exe ..\src\YaccConstructor.WithoutTests.sln /t:Build /m:8 /v:q /p:Optimize="True" /p:DebugSymbols="True" /p:Configuration="Release" /logger:Fake.MsBuildLogger+TeamCityLogger,"C:\Users\User\Documents\Project\recursive-ascent\tools\Build.Tools\Fake\FakeLib.dll" /logger:Fake.MsBuildLogger+ErrorLogger,"C:\Users\User\Documents\Project\recursive-ascent\tools\Build.Tools\Fake\FakeLib.dll"
在此之后,我们有下一个例外:

MSBUILD : error MSB4166: Child node "6" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt.
在MSBuild_*.failure.txt中,下一个信息是:

    System.Runtime.Serialization.SerializationException: Type 'Microsoft.Build.BackEnd.TaskHost' in Assembly 'Microsoft.Build, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable.
   at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
   at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
   at Microsoft.Build.BackEnd.NodePacketTranslator.NodePacketWriteTranslator.TranslateDotNet[T](T& value)
   at Microsoft.Build.Shared.LogMessagePacketBase.WriteToStream(INodePacketTranslator translator)
   at Microsoft.Build.Shared.LogMessagePacketBase.Translate(INodePacketTranslator translator)
   at Microsoft.Build.BackEnd.NodeEndpointOutOfProcBase.PacketPumpProc()
我们已看到以下所有信息:

    System.Runtime.Serialization.SerializationException: Type 'Microsoft.Build.BackEnd.TaskHost' in Assembly 'Microsoft.Build, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable.
   at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(RuntimeType type)
   at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context)
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
   at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
   at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
   at Microsoft.Build.BackEnd.NodePacketTranslator.NodePacketWriteTranslator.TranslateDotNet[T](T& value)
   at Microsoft.Build.Shared.LogMessagePacketBase.WriteToStream(INodePacketTranslator translator)
   at Microsoft.Build.Shared.LogMessagePacketBase.Translate(INodePacketTranslator translator)
   at Microsoft.Build.BackEnd.NodeEndpointOutOfProcBase.PacketPumpProc()

没有任何帮助


有人知道如何解决此问题吗?

请尝试使用MsBuild 4.0显式调用生成,以排除版本12.0

通过省略/logger开关,尝试排除自定义记录器

尝试通过注释掉/M开关来排除并行构建

尝试将诊断输出管道化到一个单独的文件中,看看是否可以获得更高的错误逼真度

%windir%\Microsoft.NET\Framework\v4.0.30319 ..\src\YaccConstructor.WithoutTests.sln /t:Build /m /v:q /p:Optimize="True";DebugSymbols="True";Configuration="Release" /fl1 /flp1:Verbosity=diag;logfile=msbuild_diag.log