------ Build started: Project: xxx (xxx\xxx), Configuration: Debug Win32 ------ 1>C:\Progr-6ren">
gpt4 book ai didi

msvc12 - 如何修复 'error MSB4018: The "VCMessage”任务在 Visual Studio 2013 中意外失败

转载 作者:行者123 更新时间:2023-12-04 03:11:18 25 4
gpt4 key购买 nike

这是我看到的:

1>------ Build started: Project: xxx (xxx\xxx), Configuration: Debug Win32 ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: The "VCMessage" task failed unexpectedly.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at System.String.Format(IFormatProvider provider, String format, Object[] args)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.Shared.ResourceUtilities.FormatString(String unformatted, Object[] args)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.Utilities.TaskLoggingHelper.FormatString(String unformatted, Object[] args)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.Utilities.TaskLoggingHelper.FormatResourceString(String resourceName, Object[] args)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.Utilities.TaskLoggingHelper.LogErrorWithCodeFromResources(String messageResourceName, Object[] messageArgs)
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.CPPTasks.VCMessage.Execute()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

并且 google 和 SO 搜索中列出的解决方案没有提供(删除尾部斜杠,恢复为默认的 $(OutDir)$(TargetDir) 路径等)

上下文

这涉及从 MSVC2012 迁移的几个项目。从相同的 MSVC2012 环境迁移的具有相同项目/解决方案布局的其他项目并没有眨眼,而有些则表现出此错误,这阻止了任何类型的成功编译/构建结果。

最佳答案

修复

错误是由于项目配置字段 Platform Toolset空虚。 (.vcproj 项目文件应该在这里列出一个值,例如 v120)

之前 :

<PlatformToolset>
</PlatformToolset>

:
<PlatformToolset>v120</PlatformToolset>

该值可以在 DevStudio 中通过项目属性面板 > 配置属性 > 常规 > 平台工具集::从下拉列表中选择一个值。

被发现的方式:
  • 在MSVC2013中新建一个空的同类型项目
  • 使用 Beyond Compare(或另一个可视化差异工具,它可以通过复制块轻松编辑正在比较的文件)来复制文件集并进行测试(通过重新加载到 DevStudio 并在其中运行 build 进程)。
  • 跨项目设置的下一个副本(如果您的原始项目有多个构建目标,如我的(Win32/x64/Itanium),则复制块),再次测试。
  • 冲洗并重复上述操作,直到您的"new"项目出现与旧项目相同的问题。缩小到 .vcproj 中的最小 XML 子集文件。


  • 在所有这些之前尝试过的相关 SO 问题和博客:
  • How do I fix Error MSB4018 in Visual Studio 2010?
  • https://connect.microsoft.com/VisualStudio/feedback/details/757884/msb4018-with-a-backslash-after-target-name-in-project-settings (嗯,问题仍然存在......只是可能在一个稍微不同的咒语中。我的问题发生在 MSVC2013 上,所有更新都按照 2015 年 3 月)
  • http://marlowa.blogspot.nl/2013/09/a-nasty-net-error-in-visual-studio-2010.html

  • 结论:如果遇到此问题,请检查所有项目配置条目。而当推到最后时,通过上面的比较和测试分而治之的过程挖出问题。

    关于msvc12 - 如何修复 'error MSB4018: The "VCMessage”任务在 Visual Studio 2013 中意外失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29121781/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com