컴파일시 다음과 같은 오류가 발생하는 프로젝트가 있습니다.
오류 CS0579 : ‘AssemblyVersion’속성이 중복되었습니다.
파일을 확인 AssemblyInfo.cs
했는데 중복이없는 것 같습니다.
MSDN 에서이 기사를 발견 하여 비슷한 문제를 해결 하고이 기사의 제안을 따르면 문제가 해결됩니다.
아무도 여기서 무슨 일이 일어나고 있는지 말해 줄 수 있습니까? 비슷한 이름을 가진 클래스를 가진 두 개 이상의 프로젝트가있는 경우에만 발생합니까? 아니면 다른 것입니까?
답변
과거 에도이 문제가 발생했기 때문에 빌드 프로세스에서 버전 정보를 제공하는 것과 별도로 어셈블리 정보를 제공한다고 가정합니다. 프로젝트에 AssemblyInfo.cs
파일에 정보가 있기 때문에 중복이 발생 합니다. 따라서 파일을 제거하면 제대로 작동한다고 생각합니다.
답변
Visual Studio 2017 부터 AssemblyInfo.cs
파일 을 계속 사용하는 또 다른 솔루션 은 다음과 같이 자동 어셈블리 정보 생성을 끄는 것입니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>
개인적으로 .NET Framework와 .NET Standard를 모두 지원 해야하는 프로젝트에 매우 유용합니다.
답변
나는 같은 오류가 있었고 어셈블리 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")]
답변
이전 프로젝트를 .NET Core로 변환 할 때 AssemblyInfo.cs에 있던 대부분의 정보를 프로젝트 자체에서 설정할 수 있습니다. 프로젝트 속성을 열고 패키지 탭을 선택하여 새 설정을 확인하십시오.
에릭 L. 앤더슨의 게시물에 ‘중복’System.Reflection.AssemblyCompanyAttribute ‘속성은’ 3 옵션을 설명합니다 :
- AssemblyInfo.cs 파일에서 충돌하는 항목을 제거하십시오.
- 파일을 완전히 삭제하거나
- GenerateAssemblyInfo 비활성화 ( Serge Semenov의 다른 답변 에서 제안한대로 )
답변
필자의 경우 컴파일 중에 생성 된 일부 임시 * .cs 파일이 실수로 프로젝트에 추가되었습니다.
파일은 obj\Debug
디렉토리에서 왔으므로 솔루션에 추가해서는 안됩니다. ㅏ*.cs
와일드 카드는 미친 조금 가서 잘못을 추가했다.
이 파일을 삭제하면 문제가 해결되었습니다.
답변
필자의 경우 프로젝트의 하위 폴더는 프로젝트 폴더였습니다.
-
파일 시스템:
- c : \ 프로젝트 \ webapi \ wepapi.csproj
- c : \ projects \ webapi \ tests \ wepapitests.csproj
-
해결책
- webapi (폴더 및 프로젝트)
- 테스트 (폴더)
- 테스트 (폴더 및 프로젝트)
- webapi (폴더 및 프로젝트)
그런 다음 “webapi”프로젝트에서 하위 폴더 “tests”를 제거해야했습니다.
답변
나를 위해 AssembyInfo.cs와 SolutionInfo.cs는 다른 값을 가졌습니다. 따라서이 파일들도 확인하십시오. 방금 그들 중 하나에서 버전을 제거했습니다.
