Visual studio 2012 创建Visual Studio 2012 Resources1.Designer.vb,而不是更新Resources.Designer.vb

Visual studio 2012 创建Visual Studio 2012 Resources1.Designer.vb,而不是更新Resources.Designer.vb,visual-studio-2012,visual-studio-2013,Visual Studio 2012,Visual Studio 2013,所以这个标题基本上解释了这一切。每当我尝试导入资源时,Visual Studio都会创建Resources1.Designer.vb文件,而不是将新的资源属性添加到Resources.Designer.vb 我找到了一个临时解决方案:打开Resources1.Designer.vb,搜索属性,将属性复制/粘贴到Resources.Designer.vb,然后删除Resources1.Designer.vb 不过,这个解决方案确实很耗时。是否有其他人经历过这种情况,或者是否有人知道真正的修复方法?

所以这个标题基本上解释了这一切。每当我尝试导入资源时,Visual Studio都会创建Resources1.Designer.vb文件,而不是将新的资源属性添加到Resources.Designer.vb

我找到了一个临时解决方案:打开Resources1.Designer.vb,搜索属性,将属性复制/粘贴到Resources.Designer.vb,然后删除Resources1.Designer.vb

不过,这个解决方案确实很耗时。是否有其他人经历过这种情况,或者是否有人知道真正的修复方法?我在这里搜索过谷歌和MSDN。MSDN有一篇来自VS2010的文章,但从未提出过真正的解决方案


因此,澄清一下,通过导入资源的任何方法,这种情况随时都会发生。项目、属性、添加现有。。。选择控件、属性窗格、图像、导入项目资源,或双击我的项目Resources.resx,然后添加现有文件。

虽然我没有问题的答案,但我的解决方法只是在比较工具中打开这两个文件(例如WinMerge)并分析差异,选择我需要的。很容易将代码从一个文件移动到另一个文件,然后您可以安全地从项目中删除/删除新创建的
Resource1
文件。

在文本编辑器中手动编辑vbproj(csproj)-删除编号1

Resources1.Designer.vb

  • 打开MyProject\文件夹,您将看到两个文件:Resource.Designer.vb(我正在使用vb.net)和Resource1.Designer.vb。删除后者

  • 返回一级,使用文本编辑器打开应用程序项目文件:xxx.vbproj,搜索“Resources”关键字,您将看到Resource和Resource1的两个“Compile”标记。注释第二部分,如下所示:

    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>
    <!-- <Compile Include="My Project\Resources1.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile> -->
    
    
    真的
    真的
    Resources.resx
    
  • 保存并重新生成解决方案

  • Joe Wu和Michal Minich的另外两个答案部分正确,但我发现你需要做更多的工作来解决这个问题

    如果您编辑项目文件,将
    Resources1
    更改为
    Resources
    ,则很有可能会在项目文件中找到两个指向完全相同的资源文件
    Resources
    ,这仍然会给您带来一些问题


    因此,只需删除项目文件中对Resources1的所有引用,然后删除Resources1文件。这为我解决了这个问题,并且不会导致每当我向资源中添加内容时,
    Resources1
    文件不断出现。

    我猜您可能是不小心在项目中添加了一个.resx文件。您的项目也有普通的“Resources.resx”文件,但IDE将其隐藏。单击“解决方案资源管理器”窗口工具栏中的“显示所有文件”图标,以便查看所有内容。Resources.resx位于“我的项目”节点下。如果你看到另一个.RESX文件,那么你应该考虑删除它。如果它困扰你,你也可以编辑VBPROJ文件来更正文件名。只有.resx是Resources.resx。展开显示Resources.Designer.vb的。当我添加一个资源时,它会在Resources.resxStingyJack下创建Resources1.Designer.vb,将其转换为答案,然后我会将其设置为1。我不确定它是如何修改的(我们在TFS上,谁知道呢),但在vbproj中:Resources.Designer.vb LastGenOutput是Resources1.Designer.vb(仅在文件中出现)。将其更改为Resources.Designer.vb,到目前为止,它似乎正在工作。我正在使用Git。因此,我放弃了git中的csproj更改,删除了旧的Resources.Designer.cs并将Resources1.Designer.cs重命名为Resources.Designer.cs,然后重新打开项目。在我看来,这就像Visual Studio中的一个bug。很抱歉,花了这么长时间升级/标记。当时我不是很活跃,这只是突然出现在OP上的一个向上投票,我注意到我没有选择一个。我的错。