У меня есть проект, который генерирует следующую ошибку при компиляции:
ошибка CS0579: повторяющийся атрибут AssemblyVersion
Я проверил файл AssemblyInfo.cs
и похоже, что там нет дубликатов.
Я нашел эту статью в MSDN, в которой рассматривается аналогичная проблема, и следование предложению в этой статье также устраняет проблему.
Кто-нибудь может сказать мне, что здесь происходит? Это происходит только в случае наличия двух и более проектов с похожими именами классов? Или что-то еще?
c#
compiler-errors
Аамир
источник
источник
Ответы:
Я также сталкивался с этой проблемой в прошлом, поэтому предполагаю, что ваш процесс сборки предоставляет информацию о сборке отдельно от обеспечения управления версиями. И это вызывает дублирование, поскольку в вашем проекте также есть эта информация в
AssemblyInfo.cs
файле. Так что удалите файл, и я думаю, он должен работать.источник
Начиная с Visual Studio 2017, еще одним решением для продолжения использования
AssemblyInfo.cs
файла является отключение автоматического создания информации о сборке следующим образом:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> </PropertyGroup> </Project>
Я лично считаю его очень полезным для проектов, которые должны поддерживать как .NET Framework, так и .NET Standard.
источник
.csproj
файл с помощью его свойств страниц (приложений, строительство, Строительные События, и т.д.),PropertyGroup
сGenerateAssemblyInfo
исчезает :-(У меня была такая же ошибка, и в ней подчеркивались версия сборки и версия файла сборки, поэтому, прочитав ответ 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, теперь может быть установлена в самом проекте. Откройте свойства проекта и выберите вкладку Пакет, чтобы увидеть новые настройки.
В сообщении Эрика Л. Андерсона «Дублировать атрибут 'System.Reflection.AssemblyCompanyAttribute'» описаны 3 варианта:
источник
.csproj
), потому что они являются метаданными, а не кодом, описывающим реальную логику. Надеюсь, в будущем в проекте можно будет все уточнить! (В настоящее время я не могу указать видимость COM, поэтому оставляю этоAssemblyInfo.cs
.)В моем случае в проект случайно были добавлены временные файлы * .cs, созданные во время компиляции.
Файлы были из
obj\Debug
каталога, поэтому их определенно не следовало добавлять в решение.*.cs
Подстановочные пошел немного сумасшедший и добавил их неправильно.Удаление этих файлов устранило проблему.
источник
В моем случае это вложенная папка в проекте, которая сама была папкой проекта:
файловая система:
решение
Затем мне пришлось удалить подпапку «тесты» из проекта «webapi».
источник
Для меня это было то, что AssembyInfo.cs и SolutionInfo.cs имели разные значения. Так что проверьте и эти файлы. Я только что удалил версию с одного из них.
источник
Моя ошибка возникла из-за того, что каким-то образом внутри моей папки контроллеров была создана папка obj. Просто поищите в своем приложении строку внутри Assemblyinfo.cs. Возможно где-то есть дубликат.
источник
Еще одно решение при обновлении ядра до VS2017 - удалить их в файле properties \ assemblyinfo.cs.
Поскольку они сейчас хранятся в проекте.
источник
Обычно это происходит со мной, если я скомпилировал проект в Visual Studio 2017, а затем попытаюсь перестроить и запустить его с .NET Core с помощью команды командной строки «dotnet run».
Простое удаление всех папок «bin» и «obj» - как внутри «ClientApp», так и непосредственно в папке проекта - позволило команде .NET Core «dotnet run» успешно перестроить и запустить.
источник
Я столкнулся с тем же, когда попытался добавить инструмент GitVersion для обновления моей версии в AssemblyInfo.cs. Используйте проект VS2017 и .NET Core. Так что я просто смешал оба мира. Мой AssemblyInfo.cs содержит только информацию о версии, сгенерированную инструментом GitVersion, мой csproj содержит оставшиеся вещи. Обратите внимание: я не использую,
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
я использую только атрибуты, относящиеся к версии (см. Ниже). Подробнее здесь AssemblyInfo properties .AssemblyInfo.cs
[assembly: AssemblyVersion("0.2.1.0")] [assembly: AssemblyFileVersion("0.2.1.0")] [assembly: AssemblyInformationalVersion("0.2.1+13.Branch.master.Sha.119c35af0f529e92e0f75a5e6d8373912d457818")]
my.csproj содержит все, что связано с другими атрибутами сборки:
<PropertyGroup> ... <Company>SOME Company </Company> <Authors>Some Authors</Authors> <Product>SOME Product</Product> ... <GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute> <GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute><GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
источник
Здесь в проекте уже должен быть файл AssemblyInfo.cs:
Чтобы решить: - Удалите любой AssemblyInfo.cs
источник
Я нашел этот ответ на msdn, в котором объясняется, как пометить файл как Content, а затем Copy to Output = If Newer. См. Статью ниже:
https://social.msdn.microsoft.com/Forums/en-US/8671bdff-9b16-4b49-ba9e-227cc4df31b2/compile-error-cs0579-duplicate-assemblyversion-attribute?forum=vsgatk
GH
источник
У меня была эта проблема, когда мой основной проект находился в той же папке, что и решение, тогда у меня был отдельный проект в том же решении, расположенный во вложенной папке, и этот отдельный проект использовал основной проект в качестве ссылки. Это привело к тому, что основной проект обнаружил подпапки bin и obj, которые создавали повторяющиеся ссылки.
источник
Если у вас возникла эта проблема в конвейере сборки в Azure DevOps, попробуйте указать действие сборки как «Содержимое» и «Копировать в выходной каталог», равное «Копировать, если новее» в свойствах файла AssembyInfo.cs.
источник
Моя ошибка заключалась в том, что я также ссылался на другой файл в моем проекте, который также содержал значение для атрибута AssemblyVersion. Я удалил этот атрибут из одного файла, и теперь он работает правильно.
Главное - убедиться, что это значение не объявляется более одного раза в любом файле вашего проекта.
источник
Отредактируйте AssemblyInfo.cs и #if! NETCOREAPP3_0 ... #endif
using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. #if !NETCOREAPP3_0 [assembly: AssemblyTitle(".Net Core Testing")] [assembly: AssemblyDescription(".Net Core")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct(".Net Core")] [assembly: AssemblyCopyright("Copyright ©")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("000b119c-2445-4977-8604-d7a736003d34")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] #endif
источник
Я получил эту ошибку, когда поместил 2 проекта в один каталог. Если у меня есть каталог с решением, и я помещаю в него отдельный каталог Web и Data, он компилируется правильно.
источник
obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(15,12): error CS0579: Duplicate 'System.Reflection.AssemblyConfigurationAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj] obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(16,12): error CS0579: Duplicate 'System.Reflection.AssemblyFileVersionAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj] obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(17,12): error CS0579: Duplicate 'System.Reflection.AssemblyInformationalVersionAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj] obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(18,12): error CS0579: Duplicate 'System.Reflection.AssemblyProductAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj] obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(19,12): error CS0579: Duplicate 'System.Reflection.AssemblyTitleAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj] obj\Debug\netstandard2.0\PacktLibrary.AssemblyInfo.cs(20,12): error CS0579: Duplicate 'System.Reflection.AssemblyVersionAttribute' attribute [c:\Users\John_Tosh1\Documents\C#8.0and.NetCore3.0\Code\Chapter05\PacktLibrary\PacktLibrary.csproj]
Я считаю, что моя папка библиотеки была повреждена из-за непреднамеренного создания другой библиотеки классов. Я удалил библиотеку и все связанные файлы, но проблема не исчезла. Я нашел обходной путь, удалив ВСЕ папки bin и obj в каталоге. Раньше сборка проходила нормально, но была обнаружена подпапка с тем же файлом assemblyinfo.cs.
источник
Эта проблема является конфликтом ссылок, который в основном характерен для VS 2017.
Я решил эту же ошибку, просто закомментировав строки 7-14, а также коды версий сборки внизу страницы на AssemblyInfo.cs.
Он удалил все повторяющиеся ссылки, и проект можно было построить снова.
источник
Мне пришлось удалить все репо и клонировать новую копию, чтобы заставить ее работать.
Я попытался удалить все упомянутые выше файлы, но это не сработало.
источник