error MSB6006: “mt.exe” exited with code 31 solution

First, problems arise
Error MSB6006: “mt. Exe “exited with code 31 is always encountered when compiling the project with VS. That’s the question.
The specific error was

Second, solutions
Set the project property Manifest Tool, and set the “Embed Manifest” in “Input and Output” to No, the specific operation is shown in the figure below:

Third, the cause of the problem
The reason has to do with manifest, seeing the explanation in someone else’s blog:
According to Microsoft’s documentation, 3. Mt. Exe is “a tool that generates signed files and catalogs”. Mt. Exe is used in the manifest generation process. “A manifest is an XML document that can be an external XML file or a resource embedded inside an application or an assembly. The manifest of an isolated application is used to manage the names and versions of shared side-by-side assemblies to which the application should bind at run time. The manifest of a side-by-side assembly specifies its dependencies on names, versions, resources, and other assemblies.”
According to Microsoft documentation, MT.EXE is “a tool for generating signed files and directories.” MT.EXE USES the listing generation process. If you don’t know what’s obvious, more documentation explains: “Manifest is an XML document, which can be an external XML file or a resource embedded within an application or assembly. The list of isolated Applications is used to manage the names and versions of the Shared parallel assemblies that the application should bind to at run time. The list of side-by-side assemblies specifies the assembly’s dependencies on name, version, resources, and other assemblies. ”


Read More: