我有一个资源文件strings.resx,生成的资源类在strings1.designer.cs中。为什么会这样?具体问题是“1”。该文件中的类名是“字符串”,应该是。
请注意,我确实尝试删除designer.cs并通过保存resx文件重新生成它,但这并没有改变任何内容。
答案 0 :(得分:7)
我遇到了这个问题并在.csproj文件中发现了问题。 Visual Studio似乎保存了它使用的最后一个文件名,并尝试再次使用该文件名生成。因此,如果由于某种原因 Strings.designer.cs 生成为 Strings1.designer.cs ,看起来VS将继续使用Strings1。
下面你可以看到.csproj文件中给我一个问题的部分。最重要的是保存 Strings1.designer.cs 的最后<LastGenOutput>
。
<Compile Include="App_GlobalResources\Strings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Strings.resx</DependentUpon>
</Compile>
<Compile Include="App_GlobalResources\Strings.es.designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Strings.es.resx</DependentUpon>
</Compile>
...
<ItemGroup>
<EmbeddedResource Include="App_GlobalResources\Strings.es.resx">
<Generator>GlobalResourceProxyGenerator</Generator>
<LastGenOutput>Strings.es.designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="App_GlobalResources\Strings.resx">
<Generator>GlobalResourceProxyGenerator</Generator>
<LastGenOutput>Strings1.designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
将<LastGenOutput>
更改为以下内容解决了我的问题:
<LastGenOutput>Strings.designer.cs</LastGenOutput>