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

重复'AssemblyVersion'属性

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

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

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


当前回答

我一直在这个问题上挣扎,但我的问题很容易解决。

我已经将OBJ文件夹复制到“OBJ___”名称来做一些编译测试。

所以,我不知道为什么,这个文件夹也被编译,创建程序集属性副本。

我只是删除了“OBJ___”文件夹,可以成功编译。

其他回答

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

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

我一直在这个问题上挣扎,但我的问题很容易解决。

我已经将OBJ文件夹复制到“OBJ___”名称来做一些编译测试。

所以,我不知道为什么,这个文件夹也被编译,创建程序集属性副本。

我只是删除了“OBJ___”文件夹,可以成功编译。

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

在将旧项目转换为. net Core时,现在可以在项目本身设置AssemblyInfo.cs中的大部分信息。打开项目属性并选择Package选项卡以查看新的设置。

埃里克·l·安德森的帖子 “复制”System.Reflection。AssemblyCompanyAttribute ' attribute"描述了3个选项:

从AssemblyInfo.cs文件中删除冲突项, 完全删除文件或 禁用GenerateAssemblyInfo(在Serge Semenov的另一个回答中建议)

我在msdn上找到了这个答案,这解释了将文件标记为内容,然后复制到输出= If更新。请看下面的文章:

https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk

GH