我有一个项目,在编译时产生以下错误:

重复'AssemblyVersion'属性

我检查了文件AssemblyInfo.cs,看起来没有重复。

我在MSDN上找到了这篇文章,它解决了一个类似的问题,并按照这篇文章中的建议解决了这个问题。

有人能告诉我这是怎么回事吗?这种情况是否只发生在有两个或多个类名称相似的项目的情况下?还是其他原因?


当前回答

我最近遇到了这种情况,没有对源代码进行任何更改,但在尝试了一些新的项目参考之后。我进入了这样一种状态,即使在恢复了分支中的所有更改之后,这个错误仍然出现。

清理树枝解决了我的问题:

Git clean -xfd

其他回答

当我的主项目与解决方案位于同一文件夹中时,我就遇到了这个问题,然后我在同一解决方案中有一个位于子文件夹中的独立项目,并且该独立项目使用主项目作为参考。这导致主项目检测到子文件夹bin & obj文件夹创建重复的引用。

我刚从。net Framework切换到。net Core就出现了错误。我的Visual Studio解决方案中有2个类库项目。我发现其中一个项目有一个名为AssemblyInfo.cs的文件,而另一个项目没有这个文件。该文件位于Properties文件夹下。我只是删除了属性文件夹,一切工作正常。

在我的例子中,在编译期间生成的一些临时*.cs文件被意外添加到项目中。

这些文件来自obj\Debug目录,所以它们肯定不应该被添加到解决方案中。A *.cs通配符有点疯狂,错误地添加了它们。

删除这些文件解决了这个问题。

我在过去也遇到过这个问题,所以我假定构建过程在提供版本控制时分别提供程序集信息。这将导致重复,因为您的项目在AssemblyInfo.cs文件中也有该信息。所以删除文件,我认为它应该工作。

我的错误是我还引用了项目中的另一个文件,该文件也包含属性“AssemblyVersion”的值。我从其中一个文件中删除了该属性,现在它正常工作了。

关键是要确保在项目中的任何文件中声明这个值不超过一次。