【问题标题】:resources.ApplyResources() causes ambiguous match errorresources.ApplyResources() 导致不明确的匹配错误
【发布时间】:2014-09-19 10:37:06
【问题描述】:

好的,所以我在一家有多个开发人员的公司工作,他们使用由 TFS 链接的 VS2013。当我运行我们的应用程序时,它运行良好,直到我打开某个窗口。当这个表单加载时,它会在表单的设计器中找到一行:

    resources.ApplyResources(Me.tcPersonnel, "tcPersonnel") 'tcPersonnel being a tabcontrol

当它到达这一行时,我收到一条错误消息,提示“找到了不明确的匹配项”。如果我仍然继续(忽略错误),表单和该控件可以正常工作。

奇怪的是,当我的同事将我的分支映射到他们的计算机并获取最新版本(我的东西都被签入)并运行它时,它可以正常工作而没有任何错误。这对我来说表明我的计算机可能有问题而不是代码错误。

相关的 Resx 元素如下:

    <data name="&gt;&gt;tcPersonnel.Name" xml:space="preserve">
      <value>tcPersonnel</value>
    </data>
    <data name="&gt;&gt;tcPersonnel.Type" xml:space="preserve">
      <value>System.Windows.Forms.TabControl, System.Windows.Forms, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
    </data>
    <data name="&gt;&gt;tcPersonnel.Parent" xml:space="preserve">
      <value>tlpCentral</value>
    </data>
    <data name="&gt;&gt;tcPersonnel.ZOrder" xml:space="preserve">
      <value>1</value>
    </data>

是否有解决方案,因为我的所有研究都一无所获。

附:我的机器是我所有同事中唯一一台运行 64 位操作系统的机器,不确定这是否有什么不同。

【问题讨论】:

  • 那不漂亮。至少向我们展示 .resx 文件中包含 tcPersonnel 资源的元素。
  • 在 64 位机器上使用 .NET 1.0 有点像恐龙与人类的电影。不知道可能出了什么问题,您不太可能安装了 1.0。是时候向上移动了。给每个人一台 64 位机器,那些恐龙也需要去,尽快迁移到 .NET 4。
  • 我们目前在.Net 3.5上,这个问题今天才刚刚开始。
  • 啊哈!那么昨天/今天发生了什么变化:
  • 没什么,我们做了一个合并,但就是这样......没有 Windows 更新,没有更新到 Visual Studio

标签: .net visual-studio-2013 resources ambiguous


【解决方案1】:

这通常表示 TFS 工作区中的一个或多个文件与 TFS 不同步。

要解决此问题,您可以强制获取最新文件,而不是使用普通的获取最新文件,而不允许 TFS 跳过它认为是最新的文件。

(对 2010 年的屏幕截图表示歉意,我会在今天晚些时候使用 2013 年的盒子时尝试为 2013 年更新它们,但您应该会在 2013 年找到等效的功能。)

在源代码管理资源管理器中,右键单击您的项目并选择获取特定版本:

然后在下一个对话框中,选择最新版本并选中两个复选框:

【讨论】:

  • 感谢您的快速回复。我已经尝试了您的解释,遗憾的是它没有用。我不知道这是否有任何区别,但我是唯一运行 64 位操作系统的机器,这会有所不同吗?
猜你喜欢
  • 1970-01-01
  • 2016-06-14
  • 1970-01-01
  • 2011-07-09
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多