Как исправить предупреждение 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, и она может отключить все эти предупреждения.
Сначала Я проверил параметр «Целевая платформа» в свойствах проекта, но не увидел никаких целевых объектов, специфичных для 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#»