Я хочу расширить эту тему / ответы следующим. Как кто-то упомянул, эта автоматически сгенерированная 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: \ Program Files \ 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»