Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Visual studio 2012 VS2015中的MSBuild错误MSB4018:;链接“;任务意外失败_Visual Studio 2012_Msbuild_Visual Studio 2015 - Fatal编程技术网

Visual studio 2012 VS2015中的MSBuild错误MSB4018:;链接“;任务意外失败

Visual studio 2012 VS2015中的MSBuild错误MSB4018:;链接“;任务意外失败,visual-studio-2012,msbuild,visual-studio-2015,Visual Studio 2012,Msbuild,Visual Studio 2015,将包含25个项目的解决方案从VS2012 Update 4升级到VS2015 RTM(14.0.23107.0)后,我在构建其中一个项目时遇到以下错误: (…)MSB4018:“链接”任务意外失败。(…)System.NullReferenceException:对象引用未设置为对象的实例。“(…) 以下是完整输出: 1>----构建已启动:项目:按钮,配置:发布Win32------ 1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V14

将包含25个项目的解决方案从VS2012 Update 4升级到VS2015 RTM(14.0.23107.0)后,我在构建其中一个项目时遇到以下错误:

(…)MSB4018:“链接”任务意外失败。(…)System.NullReferenceException:对象引用未设置为对象的实例。“(…)

以下是完整输出:

1>----构建已启动:项目:按钮,配置:发布Win32------
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:“链接”任务意外失败。
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:System.NullReferenceException:对象引用未设置为对象的实例。
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.CPPTasks.Link.ForcedRebuildRequired()处
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.CPPTasks.TrackedVCToolTask.ComputeOutOfDateSources()
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.CPPTasks.TrackedVCToolTask.SkipTaskExecution()处
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.Utilities.ToolTask.Execute()
1> C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.CPPTasks.TrackedVCToolTask.Execute()
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute()
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.cppcomon.targets(643,5):错误MSB4018:位于Microsoft.Build.BackEnd.TaskBuilder.d\u 1.MoveNext()
=======生成:0成功,1失败,24最新,0跳过==========
我已经尝试了几个与MSB4018相关的建议解决方案,但没有成功。错误“链接”任务意外失败”甚至还没有被谷歌索引。我猜这个问题在某种程度上与项目的类型有关,因为它是解决方案中唯一用作资源DLL的项目(即没有入口点等)。VS2015对项目文件所做的唯一更改是“ToolsVersion:4.0=>14.0”和“PlatformToolset:v110_xp=>v140_xp”


有人对此有解决方案吗?

我自己已经设法解决了这个问题,并希望在这里记录解决方案,以供将来参考

以下错误是由项目文件中的空XML元素引起的:

  • MSB4018:System.NullReferenceException:对象引用未设置为对象的实例。
“链接”任务访问了空元素,该任务刚刚失败:

  • MSB4018:“链接”任务意外失败。
删除相应的元素修复了该问题:

<Link><GenerateDebugInformation></GenerateDebugInformation></Link>


提示:从其他帖子中可以看出,MSB4018的许多错误似乎与包含意外值的项目文件有关。

VS 2015:问题的解决方案如下: 后藤:

项目属性->链接器->调试->生成调试信息,

将此属性设置为优化调试(/DEBUG)

注:我在空白(未设置)时观察到类似问题

这对我有用

希望这些信息能有所帮助


祝你好运:)。

另一个解决方案是通过资源管理器窗口从上一次构建中删除所有生成的文件

删除中的所有文件:

\Project\bin

\Project\obj


虽然您可以直接通过VisualStudio“清理”或“重建”,但这仅捕获部分文件。通过强制重新编译所有文件,所有内存位置现在都将正确对齐,问题应该得到解决。

如果错误语句类似于“System.InvalidCastException:无法将“System.Xml.xmlcoment”类型的对象强制转换为“System.Xml.XmlElement””类型,则可以尝试以下操作:


卸载.csproj文件并检查项目工具版本。确保Project ToolsVersion小于14(例如12)。

非常有用。事实上,我有几个空元素在。。。节。每一个都必须移除。非常有用。我也有同样的问题,很多空元素在。。。部分。感谢您花时间记录您的解决方案。在将一个项目升级到VS2015后,我遇到了同样的问题。与您的原因类似,项目文件缺少两个(32/64位)版本配置的
标记中的
false
值。
<Link><GenerateDebugInformation></GenerateDebugInformation></Link>