C#编译器错误CS0433

7

更新1:我已将我的项目文件夹上传到Dropbox - dropbox.com/s/8dfw3uprrynrhzx/S3Util.zip

我是Visual Studio的新手,我在Visual Studio 2012 Express for Windows 8上使用C#创建了一个小型Windows Runtime组件。

我的组件由一个单一的密封类组成,其中包含一个静态方法。我添加了一个单元测试库项目来测试这个静态方法。

(我按照这个指南进行单元测试)

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

错误 1    类型 'S3Util.S3Security' 在 'c:\workspace\vs\S3Util\S3Util\bin\Debug\S3Util.winmd' 和 'c:\workspace\vs\S3Util\S3Util\bin\Debug\S3Util.winmd' 中都存在
C:\workspace\vs\TestLib_S3Util\TestLib_S3Util\Test_Security.cs 18 27 TestLib_S3Util

Microsoft网站上的错误帮助页面 表明这是编译器错误 CS0433。

然而,我的单元测试库仅包含对我的 Windows 运行时组件项目的一个引用,即使我看到的错误消息也是指两次相同的 .winmd 文件。请帮我理解问题以及如何解决它。

错误截图:(点击查看完整尺寸)


1
有没有可能将项目压缩并添加到公共Dropbox中,以便其他人可以尝试它? - default
你的Test_Security.cs文件中第18行是什么样子? - default
@默认 - 感谢您的建议。我已经上传了我的项目,链接为-https://www.dropbox.com/s/8dfw3uprrynrhzx/S3Util.zip - Anil Raj
@Default - Test_Security.cs文件中的第18行是 -> String hash = S3Security.HMACSHA1(key, data); - Anil Raj
你尝试过将S3Security设置为静态的而不是密封的吗?不幸的是,没有Windows 8,我只能说这么多。 - Pharap
显示剩余4条评论
1个回答

1

在我不知道错误原因的情况下,我开始缩小可能性列表。我会执行以下操作:

  1. 通过搜索查找S3Security类。如果找到两个,请删除一个。
  2. 尝试删除最近添加的引用之一并编译。一直删除直到项目编译成功。
  3. 尝试删除最新的文件/项目,直到解决方案无错误编译。您也可以尝试反向移动,开始执行您正在执行的步骤,并检查在哪个步骤中出现错误。让我们知道是什么。

谢谢您的回复,Yaroslav。
  1. 这是我在Visual Studio中的第一个也是唯一的项目,因此我在我的工作区中找不到另一个S3Security。
  2. 我只添加了对S3Util项目的引用,并将其添加到我的单元测试项目中。
  3. 该项目中只有两个文件,一个是我的S3Util类的.cs文件,另一个是我的单元测试的.cs文件。
- Anil Raj
@AnilRaj,将类的名称从S3Security更改为其他名称怎么样?它会反对新名称吗?还是只有这个名称被视为这样? - Yaroslav Yakovlev
我也刚尝试了一下,但是我一直得到相同的错误(使用新的类名)。 - Anil Raj
好的,看起来是编译器错误。如果更改类后出现相同类型的错误,但使用新的类名 - 这是编译器错误。我无法打开项目进行测试,因为没有这个版本的Visual Studio。 - Yaroslav Yakovlev
这是一个编译器错误。然而,我无法理解这个错误,因为它说类型存在于“File1”和“File2”中,而File1和File2都指向同一个文件。 - Anil Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接