这里有另一个关于这个的线程,但我的问题是不同的。我最终找到了针对我的特定问题的解决方案,我将其发布在这里,以防它对其他人有用。
4 回答
在项目的 Properties 文件夹中,应该(至少)有两个文件,Resources.resx 和 Resources.Designer.cs,后一个文件显示在 Visual Studio 解决方案资源管理器中 Resources.resx 下的较低级别。就我而言,Resources.Designer.cs 文件不知何故不再包含在项目中。这可以通过编辑(或恢复旧副本).csproj 文件来解决。
并且信用到期,我在这里找到了这个解决方案:http: //social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/ebeca7a8-c7a3-4cb6-a40e-89c5fdb70c82在 NJLASSI 的回答中。
编辑:
解决这个问题并不像我最初想象的那么简单,所以最好有一个 .csproj 文件的旧副本可用,以便可以从那里恢复相关行。以下是适用的行:
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
和
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<SubType>Designer</SubType>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
在我看来,强制 VisualStudio 为任何 Designer.cs 文件重新生成过程的最简单方法是: 更改对象属性的值......
在我们的例子中:
- 转到 Resources.resx 属性
- 在“自定义工具命名空间”中键入任何文本,然后按 Return(现在应该重新生成 Resources.Designer.cs)
- 移除伪命名空间
一切都应该重新开始。
PS:用VS2015解决了同样的问题......
重命名命名空间时(在 Visual Studio 中使用 ctrl-r、ctrl-r)文件 Properties\Resources.Designer.cs 中的命名空间并不总是更改(在我的例子中是 2012 年)。
在我的例子中,PhaseControlMMI 是新的命名空间名称:
namespace PhaseControlMMI.Properties {
using System;
在显示此更改后,属性为我解决了。
如果由于您不小心重命名了命名空间而发生此错误,并且您仍然拥有 Resources.Designer.cs 文件,一个简单的解决方案是打开该文件,并将命名空间更改为正确的:
// in my case this was accidentally changed to DummyApp.Properties
namespace Tools.Properties {
using System;
将其更改为正确的命名空间(工具)后,错误得到解决。