Как исправить предупреждение Visual Studio 2022 CA1416 «Сайт вызова доступен для всех платформ», но «поддерживается тольC#

Место общения программистов C#
Ответить
Anonymous
 Как исправить предупреждение Visual Studio 2022 CA1416 «Сайт вызова доступен для всех платформ», но «поддерживается толь

Сообщение Anonymous »

Итак, у меня есть проект библиотеки классов C#, который я собираюсь использовать только в Windows. Он содержит несколько классов, использующих класс System.Drawing.Image, который доступен только в Windows. После обновления до Visual Studio 2022 и установки целевой платформы .NET 6.0 я вижу несколько предупреждений:
«Этот сайт вызова доступен на всех платформах. SomeClass.SomeMethod поддерживается только в: Windows».

См. снимок экрана ниже для некоторых примеров:
Изображение

В каком-то смысле здорово, что VS2022 просканировал библиотеку и нашел все специфичные для платформы код, который я использую в библиотеке. Но я хотел бы сказать VS, что я планирую использовать библиотеку только в Windows, и она может отключить все эти предупреждения.
Сначала я проверил. Цель framework в свойствах проекта, но не увидел никаких конкретных целей для Windows.
Изображение

Тогда я решил отредактировать .csproj проекта напрямую и изменил целевую структуру с для

Код: Выделить всё

net6.0-windows
Но, к сожалению, даже после перекомпиляции предупреждения не исчезли. Затем я немного прочитал предупреждения CA1416 и, конечно же, в документах Microsoft сказано, что моникер целевой платформы игнорируется при оценке этого предупреждения, однако VS добавляет атрибут в проект на основе TFM, который влияет на это предупреждение, но это происходит только в том случае, если проект настроен на создание файла AssemblyInfo.cs «на лету». Но, увы, файл AssemblyInfo.cs моего проекта сохраняется как реальный файл, а не автоматически генерируется во время сборки.
Итак, на данный момент я готов ударьте по мячу и просто отключите предупреждения CA1416 для моего проекта. Поэтому в файл .proj проекта я добавил CA1416 как для выпускной, так и для отладочной сборки, например:

Код: Выделить всё

1701;1702;CA1416;



1701;1702;CA1416;

Можно было бы подумать, что на этом надоедливые предупреждения закончатся. (вздох)
Оказывается, после пересборки проекта предупреждения все еще появляются. Есть предложения? Я весь в ушах.


Подробнее здесь: https://stackoverflow.com/questions/699 ... ll-platfor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»