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

重复'AssemblyVersion'属性

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

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

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


当前回答

这个问题是VS 2017特有的参考冲突。

我通过在AssemblyInfo.cs中注释掉第7 -14行以及页面底部的程序集版本代码来解决了同样的错误

它删除了所有重复的引用,项目能够重新构建。

其他回答

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

从Visual Studio 2017开始,另一个继续使用AssemblyInfo.cs文件的解决方案是关闭自动生成组装信息,如下所示:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  </PropertyGroup>
</Project>

我个人认为它对于需要同时支持。net框架和。net标准的项目非常有用。

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

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

GH

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

ASP。NET Core 3.1

我也一直在和这个问题作斗争。 在我的例子中,我把解决方案和项目放在了同一个地方,所以我遇到了问题。当我为解决方案选择了一个文件夹并将项目放在这个解决方案中后,它正常工作。