Aam*_*mir 108 c# compiler-errors
我有一个项目在编译时生成以下错误:
错误CS0579:复制'AssemblyVersion'属性
我检查了文件AssemblyInfo.cs,看起来没有重复.
我在MSDN上发现这篇文章解决了类似的问题,并且遵循本文中的建议也解决了这个问题.
谁能告诉我这里发生了什么?是否只有两个或更多项目的类名相似的情况下才会发生?或者是别的什么?
Ser*_*nov 137
从Visual Studio 2017开始,另一个继续使用该AssemblyInfo.cs文件的解决方案是关闭自动装配信息生成,如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
我个人觉得它对需要同时支持.NET Framework和.NET Standard的项目非常有用.
luq*_*uqi 98
由于我过去也遇到过这个问题,所以我假设您的构建过程还单独提供程序集信息以提供版本控制.这会导致重复,因为您的项目在AssembleyInfo.cs文件中也有该信息.所以删除文件,我认为它应该工作.
Pan*_*oti 15
我有同样的错误并且是大会Vesrion和汇编文件版本的基础所以阅读Luqi回答我刚刚添加它们作为评论并且错误已经解决
// AssemblyVersion is the CLR version. Change this only when making breaking changes
//[assembly: AssemblyVersion("3.1.*")]
// AssemblyFileVersion should ideally be changed with each build, and should help identify the origin of a build
//[assembly: AssemblyFileVersion("3.1.0.0")]
Run Code Online (Sandbox Code Playgroud)
her*_*ger 15
就我而言,项目中的子文件夹本身就是项目文件夹:
文件系统:
解决方案
然后我不得不从“webapi”项目中删除子文件夹“tests”。
MiF*_*vil 11
将旧项目转换为.NET Core时,现在可以在项目本身上设置AssemblyInfo.cs中的大部分信息.打开项目属性,然后选择"包"选项卡以查看新设置.
在埃里克L. Anderson的文章"复制'System.Reflection.AssemblyCompanyAttribute’属性" 描述了3个选项:
在我的例子中,编译过程中生成的一些临时*.cs文件被意外添加到项目中.
这些文件来自obj\Debug目录,因此它们绝对不应该添加到解决方案中.一个*.cs通配符去有点疯狂,并加入他们不正确.
删除这些文件解决了问题.
我在尝试添加 GitVersion 工具以更新我在 AssemblyInfo.cs 中的版本时遇到了同样的问题。使用 VS2017 和 .NET Core 项目。所以我只是混合了两个世界。我的 AssemblyInfo.cs 只包含 GitVersion 工具生成的版本信息,我的 csproj 包含剩余的东西。请注意我不使用<GenerateAssemblyInfo>false</GenerateAssemblyInfo>我只使用与版本相关的属性(见下文)。更多详细信息请参见AssemblyInfo 属性。
装配信息.cs
[assembly: AssemblyVersion("0.2.1.0")]
[assembly: AssemblyFileVersion("0.2.1.0")]
[assembly: AssemblyInformationalVersion("0.2.1+13.Branch.master.Sha.119c35af0f529e92e0f75a5e6d8373912d457818")]
Run Code Online (Sandbox Code Playgroud)
my.csproj包含所有与其他程序集属性相关的内容:
<PropertyGroup>
...
<Company>SOME Company </Company>
<Authors>Some Authors</Authors>
<Product>SOME Product</Product>
...
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)