Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Причина
Проект имеет установленный <VerifyReferenceTrimCompatibility>true</VerifyReferenceTrimCompatibility>, а одна или несколько связанных сборок не имеют атрибута метаданных сборки IsTrimmable установленного в true.
Описание правила
При публикации обрезаемого приложения с помощью <PublishTrimmed>true</PublishTrimmed> или пометки вашего проекта как обрезаемого с использованием <IsTrimmable>true</IsTrimmable>, можно включить проверку совместимости с обрезкой, чтобы все указанные сборки также были аннотированы для этого. Это помогает гарантировать, что все зависимости в проекте помечены для обеспечения совместимости обрезки.
Чтобы включить эту проверку, задайте значение VerifyReferenceTrimCompatibility для свойства true в файле проекта.
<PropertyGroup>
<PublishTrimmed>true</PublishTrimmed>
<VerifyReferenceTrimCompatibility>true</VerifyReferenceTrimCompatibility>
</PropertyGroup>
Когда это свойство включено, анализатор проверяет, что все сборки, на которые имеются ссылки, были построены с использованием <IsTrimmable>true</IsTrimmable>, который добавляет атрибут уровня сборки [assembly: AssemblyMetadata("IsTrimmable", "True")] в сборку.
Example
// Assembly reference: MyLibrary.dll (built without <IsTrimmable>true</IsTrimmable>)
public class Program
{
public static void Main()
{
var obj = new MyLibrary.SomeClass();
}
}
warning IL2125: Referenced assembly 'MyLibrary' is not built with `<IsTrimmable>true</IsTrimmable>` and may not be compatible with trimming.
Устранение нарушений
Это предупреждение можно исправить несколькими способами:
- Если вы управляете исходным кодом библиотеки, обновите созданную библиотеку.
<IsTrimmable>true</IsTrimmable>Рекомендации по созданию библиотек, совместимых с обрезкой, см. в статье "Подготовка библиотек .NET для обрезки". Это предпочтительный подход. - Если вы уверены, что библиотека работает правильно с обрезкой даже без атрибута, отключите проверку , установив параметр
<VerifyReferenceTrimCompatibility>false</VerifyReferenceTrimCompatibility>в файле проекта.