Я хочу розширити цю тему / відповіді наступним чином. Як хтось згадував, ця автоматично створена AssemblyInfo може стати перешкодою для зовнішніх інструментів. У моєму випадку, використовуючи FinalBuilder , у мене виникла проблема, що AssemblyInfo не оновлювався дією збірки. Мабуть, FinalBuilder покладається на ~proj
файл, щоб знайти місцезнаходження AssemblyInfo . Я думав, він шукав де-небудь під папкою проектів. Ні. Отже, змінивши це
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
зробив лише половину роботи, вона дозволила користувальницькій інформації про збірку, якщо вона побудована за допомогою VS IDE / MS Build. Але мені потрібно було FinalBuilder зробити це також без ручних маніпуляцій зі збиранням файлу інформації. Мені потрібно було задовольнити всі програми, MSBuild / VS та FinalBuilder.
Я вирішив це, додавши запис до існуючого ItemGroup
<ItemGroup>
<Compile Remove="Common\**" />
<Content Remove="Common\**" />
<EmbeddedResource Remove="Common\**" />
<None Remove="Common\**" />
<!-- new added item -->
<None Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Тепер, маючи цей елемент, FinalBuilder знаходить місце розташування AssemblyInfo та змінює файл. Хоча дія None
дозволяє MSBuild / DevEnv ігнорувати цей запис і більше не повідомляти про помилку, засновану на Compile
дії, що зазвичай відбувається з введенням інформації про складання у proj
файли.
C: \ Файли програми \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets (263,5): помилка: Додано копії елементів "Компілювати". .NET SDK включає за замовчуванням елементи «Компілювати» з каталогу проектів. Ви можете або видалити ці елементи з файлу проекту, або встановити властивість "EnableDefaultCompileItems" на "false", якщо ви хочете явно включити їх у свій файл проекту. Для отримання додаткової інформації див. Https://aka.ms/sdkimplicititems . Повторними пунктами були: 'AssemblyInfo.cs'