Visual Studio resx 编辑器创建重复的设计器文件

问题描述 投票:0回答:4

在我当前的项目中,每当我添加、更新或删除资源时,该工具都会创建一个设计器文件的副本,这会把事情搞砸。我在我的其他项目中没有看到这种行为,据我所知,我正在以相同的方式实现资源。任何人都可以阐明这种行为吗?谢谢

visual-studio-2013 resx
4个回答
16
投票

Visual Studio 2017

对复制的设计器文件的引用在 csproj 文件中。

  • 关闭解决方案
  • 编辑你的项目.csproj
  • 找到 LastGenOutput 标签
  • 删除设计器文件上的“1”

您现在可以重新加载解决方案。 如果你想重新生成设计器文件:

  • 删除它
  • 编辑resx文件并保存 重新创建新的设计器文件。

3
投票

不幸的是,我不知道是什么导致了我,但在浪费了相当多的时间之后,我找到了一个似乎对我来说没有问题的解决方法。

我只是删除了设计器文件并重新构建了我的项目。这会自动重新创建设计器文件,一切都继续正常工作。

唯一明显的区别是设计器文件的末尾现在有一个 1。

例如String.resx -> Strings1.Designer.cs

我过去一直对此文件进行断断续续的更改,没有任何问题。如果有人能解释是什么让它进入这种腐败状态,请与我们分享。


1
投票

打开项目文件(使用不同的编辑器,如记事本、记事本++等)并查找类似以下内容的内容:

<Compile Include="YourResourceFilename1.Designer.cs">
  <AutoGen>True</AutoGen>
  <DesignTime>True</DesignTime>
  <DependentUpon>YourResourceFilename.resx</DependentUpon>
</Compile>

将其更改为

<Compile Include="YourResourceFilename.Designer.cs">...
然后保存文件然后构建项目。您可能还需要删除文件 YourResourceFilename1.Designer.cs。 此外,可能值得在该文件中搜索 YourResourceFilename1 的任何进一步出现。
祝你好运! :)


0
投票

问题出在 .csproj 文件中,在 .csproj 文件中,我的资源文件的最后生成的输出文件的条目是 resource2.designer.cs ..我将它更改为 resource.designer.cs 及其工作..

<EmbeddedResource Include="Properties\Resources.resx">
      <Generator>ResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources2.Designer.cs</LastGenOutput>
    </EmbeddedResource>
© www.soinside.com 2019 - 2024. All rights reserved.