我有一个项目,在编译时产生以下错误:
重复'AssemblyVersion'属性
我检查了文件AssemblyInfo.cs,看起来没有重复。
我在MSDN上找到了这篇文章,它解决了一个类似的问题,并按照这篇文章中的建议解决了这个问题。
有人能告诉我这是怎么回事吗?这种情况是否只发生在有两个或多个类名称相似的项目的情况下?还是其他原因?
我有一个项目,在编译时产生以下错误:
重复'AssemblyVersion'属性
我检查了文件AssemblyInfo.cs,看起来没有重复。
我在MSDN上找到了这篇文章,它解决了一个类似的问题,并按照这篇文章中的建议解决了这个问题。
有人能告诉我这是怎么回事吗?这种情况是否只发生在有两个或多个类名称相似的项目的情况下?还是其他原因?
当前回答
我刚从。net Framework切换到。net Core就出现了错误。我的Visual Studio解决方案中有2个类库项目。我发现其中一个项目有一个名为AssemblyInfo.cs的文件,而另一个项目没有这个文件。该文件位于Properties文件夹下。我只是删除了属性文件夹,一切工作正常。
其他回答
在我的例子中,在编译期间生成的一些临时*.cs文件被意外添加到项目中。
这些文件来自obj\Debug目录,所以它们肯定不应该被添加到解决方案中。A *.cs通配符有点疯狂,错误地添加了它们。
删除这些文件解决了这个问题。
当我把两个项目放在同一个目录中时,我得到了这个错误。如果我有一个解决方案的目录,我把一个单独的Web和数据目录放在它编译正确。
当我尝试在AssemblyInfo.cs中添加GitVersion工具来更新我的版本时,我遇到了同样的情况。使用VS2017和。net Core项目。所以我只是混合了两个世界。我的AssemblyInfo.cs只包含由GitVersion工具生成的版本信息,我的csproj包含其余的东西。请注意,我不使用<GenerateAssemblyInfo>false</GenerateAssemblyInfo>我只使用与版本相关的属性(见下面)。更多详细信息,这里是AssemblyInfo属性。
AssemblyInfo.cs
[assembly: AssemblyVersion("0.2.1.0")]
[assembly: AssemblyFileVersion("0.2.1.0")]
[assembly: AssemblyInformationalVersion("0.2.1+13.Branch.master.Sha.119c35af0f529e92e0f75a5e6d8373912d457818")]
我的。Csproj包含所有与其他程序集属性相关的属性:
<PropertyGroup>
...
<Company>SOME Company </Company>
<Authors>Some Authors</Authors>
<Product>SOME Product</Product>
...
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
</PropertyGroup>
如果您在Azure DevOps上的构建管道中遇到此问题,请尝试将构建操作设置为“Content”,并在AssembyInfo.cs文件属性中将“Copy to Output Directory”设置为“如果更新则复制”。
这里的项目中必须已经有一个AssemblyInfo.cs文件:
解决: —删除任意一个AssemblyInfo.cs