将解决方案升级到Windows 8.1后,出现神秘的构建错误

21

我在项目中使用了Windows Store应用程序8.0,并将其升级为8.1。同时,我还将Visual Studio从2012升级到了2013。

首先,我遇到了一个错误,无法使用Microsoft.VCLibs版本11.0和12.0。因此,我删除了11.0版本。

然后我遇到了这些错误:

enter image description here

我试图在互联网上找到一些信息,但没有任何结果。而且当我双击错误时,它并没有把我带到错误的位置。

我尝试了很多方法,都没有帮助,所以我决定写这篇文章。

有人能帮助我解决这些错误吗?

编辑:

我添加了更多信息,也许这可以导致问题:

enter image description here

已解决:

在Hans Passant的帮助下,错误已经修复。问题是我的资源文件上有重复项:

enter image description here

我做了两次,一次是为了按钮(具有内容),一次是为了在代码后端上的消息对话框。

在Visual Studio 2012中,这段代码正常工作,但不知何故,在Visual Studio 2013中却无法工作。

我删除了Cancel.Content行,错误消失了并且它运行良好:)

7个回答

3

这里有个人遇到了同样的问题。

我会复制Caplan的建议。在你的项目中查找.resw文件并查找重复的“Cancel”资源。值得注意的是,故意强制使用重复的资源在我在VS2013上构建程序时产生了另一条消息:

1>MakePri : error 0x80073b0f: 处理资源出错:重复条目。
1>MakePRI : error 0xdef00532: 对于资源'Resources/String1'存在冲突值

无论是在相同的.resw文件中重复资源,还是复制.resw文件并将其添加到项目中都会产生相同的消息。因此,Caplan的解释并不完全准确,建议关注您的解决方案中可能也具有名为“Cancel”的资源的其他项目。如果您的解决方案依赖于VCLibs,则很可能会发生这种情况,这听起来像您正在混合使用C#和C++ / CX。


我已经编辑了我的帖子,添加了一张图片,也许这可以帮助...关于你的答案,似乎是正确的方法,但我不明白应该怎么做? - Misha Zaslavsky
这并没有帮助。你实际上需要查看.resw文件的内部。请使用记事本。 - Hans Passant
好的,我已经用记事本打开了.resw文件,但是我该怎么做呢? - Misha Zaslavsky
查找“取消”。查看解决方案中使用的其他项目的.resw文件,也在那里查找“取消”。您似乎有些力不从心,我建议您致电微软支持以获取帮助。您可以将解决方案和项目发送给他们,他们会告诉您出了什么问题。 - Hans Passant
不需要打电话 :) 它正在工作!!!我所要做的就是在.resw文件中删除一行取消文本 - 我不知道为什么,在以前的Visual Studio中它很好。非常感谢 :) - Misha Zaslavsky
显示剩余2条评论

2

如果您在一个项目中更新了Nuget包,但没有在另一个也使用相同Nuget包的依赖项目中进行更新,也可能会出现类似的错误。

即,当在两个依赖项目中引用不同版本的依赖关系时,可能会出现版本不匹配的错误。


1
我发现了这个MSDN URL,它似乎非常有帮助。
特别是以下两个片段:
  1. 您的项目文件中实际上可能有重复的资源条目。
  2. 您的obj文件可能已经损坏,您需要清除您的obj文件(虽然我已经很久没有在我的团队中遇到这个问题了 - 它可能已经在2008年修复了)。
  3. 如果您使用自定义区域设置,可能使用了 .Net RegisterCulture 方法,请确保该区域设置已在计算机上注册。如果您重新安装了操作系统并安装了VS2008,但由于此问题无法构建,则可能是因为您需要在构建之前注册自定义区域设置。当msbuild找不到区域设置时,会抛出此错误。
或者:

enter image description here

PS - 还有可用的Visual Studio 2012 Update 3, 可能会有所帮助?

Visual Studio 2012 Update 3

希望这能有所帮助。


不是这样的,错误信息不匹配。你是用傀儡账户给自己的帖子点赞吗?唉,唉。 - Hans Passant
@HansPassant,根据我在网上对这个错误所做的研究,这就是我发现的。回答你的问题,不,我没有“Sock Puppet Account”——如果你不相信我,你可以审查我的账户。 - Hexie
@HansPassant PS - 现在已经有两个人点赞了(我希望我有足够的声望告诉你是谁,但我没有),如果有两个人欣赏这个答案,那么这应该足以证明了吧? - Hexie
@HansPassant PS 2 - 我仍然认为这是一个资源问题,我在答案中提供的第二个/备选选项应该会有所帮助(即删除res文件等)。我能理解你为什么会有你的想法,但是我认为整个答案都应该有所帮助(另外还有其他两个人),因此,我对指责感到冒犯。如果您希望开启私人聊天,请随时这样做。 - Hexie

0
在我的情况下,将一个可工作的Win8应用程序重新定位为Win81应用程序后,出现了UI字符串的问题。我认为这是正确的,但是VS2013在处理它时出现了一些问题。
Locations       SomeString  
Locations.Text  SomeStringForUI 

移除其中一个解决了我的问题。


0

我不知道你是否尝试重新安装VS 2013,我遇到了同样的错误,但当我重新安装后问题得以解决。


这看起来像是一个C#应用程序。为什么需要VCLibs依赖项?你使用了C++组件吗? - Raman Sharma

0

最近我在我的UWP项目中遇到了类似的构建异常

MakePri:错误0x80073b0f:处理资源时出错:Doppelter Eintrag。 MakePRI:错误0xdef00532:资源'System.Design/ClassComments1'的冲突值。

我找到了很多关于这个错误的信息,但没有解决方案。看起来错误必须在入口应用程序项目中,但实际上并不是。 在我的情况下,由于我的错误,VS自动集成了对System.Activities的引用。

在删除错误引用后,它再次正常工作。


-1

我也遇到了同样的问题,但你是如何解决的呢? - toddmo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接