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

重复'AssemblyVersion'属性

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

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

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


当前回答

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

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

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

其他回答

您可以删除bin和obj文件,并清除项目的缓存。我的问题从此解决了。

我的错误发生是因为,不知何故,在我的控制器文件夹中创建了一个obj文件夹。只需在应用程序中搜索Assemblyinfo.cs中的一行。某处可能有副本。

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

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

我得到这些错误,因为我试图临时重命名obj文件夹为obj_,然后它自动包含在项目中。然后其中的assembly.cs开始与后来生成的obj文件夹中的正确的程序发生冲突。

以我为例,我的一个同事删除了一个用于测试的控制台应用程序,它与我们的Api放在同一个目录下,然后提交给Git。 当我后来从Git中退出时,控制台应用程序本身当然已经消失了,但它的bin和obj文件夹仍然在那里,导致AssemblyInfo.cs文件出现在根应用程序目录和旧控制台应用程序的子目录中。简单地删除旧控制台应用程序的bin和obj文件夹就解决了这个问题。

ASP。NET Core 3.1