当我尝试访问我的一个C#项目资源中的字符串属性时,出现以下错误:
'ORG.PRJ.MOD.MyClass2' does not contain a definition for 'Properties'
产生错误的代码是:
string s = MyClass2.Properties.Resources.TestString2;
真奇怪的是,我的解决方案中的另一个项目(使用MyClass和TestString)具有完全相同的设置不会产生错误并且像冠军一样工作。这是背景和我尝试的所有事情。
- 两者都是VS2008中的“Class Library C#”项目。
- 我通过右键单击 - >解决方案树中每个项目的属性创建资源字符串,然后选择“资源”选项卡。然后我在一个中输入了“TestString”,在另一个中输入了“TestString2”。
- 对于有效的项目,如果我键入MyClass。 - IDE IntelliSense告诉我“属性”是一个可用的成员(但这是它向我展示的唯一成员)。对于不起作用的项目,可用的成员是“Equals”和“ReferenceEquals”(它不会给我“属性”)。这似乎是SOMETHING与众不同的最大线索。
- 认为我的项目文件已损坏,我从头开始重新创建了两个项目。我删除了所有bin,obj和Properties文件夹,删除了所有Resources.resx和Resources.Designer.cs文件,删除了所有.csproj,.csproj.user,.sln和.suo文件。对于两个项目。然后我再次启动VS2008并使用File-> New->“Project From Existing Code ...”来创建新项目。然后我以完全相同的方式为两个项目添加了资源(按照上面的步骤2)。相同的结果。
- 我在两个项目(Resources.resx,Resources.Designer.cs,MyProj.csproj)之间的相应文件上执行了'diff'。除了我期望的结果之外,没有什么看起来不同(类名和字符串名称在它们之间有所不同)。
- 我用Google搜索了它。基于这种奇怪的感觉,毫无疑问我做了一些非常愚蠢的事情(见https://stackoverflow.com/questions/58640/great-programming-quotes/756768#756768)。
醇>