C#编译器错误CS0433

C#编译器错误CS0433,c#,unit-testing,windows-8,visual-studio-2012,C#,Unit Testing,Windows 8,Visual Studio 2012,更新1:我已将我的项目文件夹上载到dropbox- 我是VisualStudio新手,我在VisualStudio2012 Express的Windows8上用C#创建了一个小的Windows运行时组件 我的组件由单个密封类和单个静态方法组成。我在解决方案中添加了一个单元测试库项目来测试这个静态方法 (我随后创建了一个单元测试) 构建解决方案时,出现以下错误: 错误1“c:\workspace\vs\S3Util\S3Util\bin\Debug\S3Util.winmd”和“c:\worksp

更新1:我已将我的项目文件夹上载到dropbox-

我是VisualStudio新手,我在VisualStudio2012 Express的Windows8上用C#创建了一个小的Windows运行时组件

我的组件由单个密封类和单个静态方法组成。我在解决方案中添加了一个单元测试库项目来测试这个静态方法

(我随后创建了一个单元测试)

构建解决方案时,出现以下错误:

错误1“c:\workspace\vs\S3Util\S3Util\bin\Debug\S3Util.winmd”和“c:\workspace\vs\S3Util\S3Util\bin\Debug\S3Util.winmd”中都存在类型“S3Util.S3Security”
C:\workspace\vs\TestLib\u S3Util\TestLib\u S3Util\Test\u Security.cs 18 27 TestLib\u S3Util

指示这是一个编译器错误CS0433

但是,我的单元测试库只包含一个对windows运行时组件项目的引用,甚至我看到的错误消息也两次引用了相同的.winmd文件。请帮助我了解这个问题以及如何解决它

错误屏幕截图:(单击查看完整尺寸)


如果我不知道错误发生的原因,我开始缩小可能性列表。我会做以下几件事:

  • 通过搜索查找类别S3安全性。如果你发现了其中的两个-移除一个
  • 尝试删除最近添加的引用之一并编译。在项目编译之前删除
  • 尝试删除最新的文件/项目,直到解决方案编译无误为止。您也可以尝试反向移动,开始执行您正在执行的STE,并检查哪一步会出现错误。让我们知道是什么

  • 我猜这是一个VisualStudio bug。尝试删除bin和obj文件夹中的所有文件(可以通过Windows资源管理器手动删除,也可以通过Visual Studio中的“清理解决方案”选项删除)。您可能也想在删除这些文件后重新启动VS。我真的不知道该错误可能是指什么,但可能是因为您引用了库的不同版本吗?也许您引用的是已编译的dll,而不是现有的项目?谢谢您的回复。我删除了bin和obj文件夹中的所有文件,重新启动了visualstudio并尝试再次构建解决方案,但仍然收到相同的错误。也许,正如您所说,这是一个VisualStudio bug。我正试图与Microsoft团队取得联系。@Jeff-我肯定我没有引用编译过的dll,因为当我在单元测试项目中添加引用时,我可以看到我在Reference Manager对话框中添加了S3Util.csproj。是否可以压缩项目并将其添加到公共dropbox中,以供其他人尝试?谢谢您的回复,Yaroslav。1.这是我在VisualStudio中的第一个也是唯一一个项目,因此我在我的工作区2中没有找到另一个S3Security。唯一的参考是我添加了对S3Util项目的参考,并将其添加到我的单元测试项目中。3.项目中只有两个文件,一个是我的S3Util类的.cs文件,一个是我的单元的.cs文件test@AnilRaj将类的名称从S3Security更改为其他名称如何?它会抱怨新名称,或者它是唯一一个被这样对待的名称?我也尝试过,但我一直得到相同的错误(新类名),好吧,这似乎是编译器错误。如果通过更改类,您将得到相同类型的错误,但是使用新的类名-它
    s编译器错误。我无法打开项目进行测试,因为没有此版本的Visual Studio。这是一个编译器错误。但是,我无法理解这个错误,因为它说类型存在于“File1”和“File2”中,其中File1和File2都指向同一个文件。