Ошибка VBC '& e_emb.Message Предварительная версия Visual Studio 22

Я пытаюсь обновить старинное приложение vb winform с платформы 4.72 до .NET 8. Я использую предварительный просмотр Visual Studio 2022 (последняя версия). Я сократил количество ошибок, возникающих в процессе сборки, с более чем 9000 до 1. Кажется, эту проблему решить труднее всего. В окне ошибки получаю такое сообщение:

Ошибка (активная) "& e_emb.Message) Файл: vbc, строка 1

В моем окне вывода среди множества предупреждений ошибка выглядит следующим образом:

6>\lanserver\haim\DellDoc\Visual Studio \BARDApp12n\Reviewer.vb(3821,13): предупреждение CA1416: этот сайт вызова доступен на всех платформах. ... 6>VBC: MessageBox.Show("Сообщение не было отправлено, из-за следующей ошибки: " & e_emb.Message) 6>\lanserver\haim\DellDoc\BARDApp12n\SRRemindDialog.vb(620,9): предупреждение CA1416: ... 6>\lanserver\haim\DellDoc\BARDApp12n\Reviewer.vb(3814,21): предупреждение CA1416: ...

Хотя выходные сообщения не располагаются в каком-то определенном порядке, я устраняю ошибку, если исключаю из проекта reviewer.vb (winform). Моя стратегия сейчас — закомментировать части кода в этой форме, пока не найду виновника. Я не смог найти эту конкретную проблему в Интернете. Есть ли у кого-нибудь идеи, где я могу найти ошибку?

Это предупреждения, а не ошибки. Они просто говорят вам, что у вас есть код, который будет работать только в Windows, но теоретически может быть выполнен на других платформах. Возможно, существует какой-то способ указать, что ваше приложение предназначено только для Windows, что предотвратит появление этих сообщений об ошибках, но вы можете просто подавить их для этого проекта.

jmcilhinney 04.07.2024 10:30

Похоже, где-то в цепочке от сообщения компилятора до окна ошибки есть ошибка, где оно некорректно обрабатывается. Сообщения в выводе компилятора выглядят разумно.

Craig 08.07.2024 17:14
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
94
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

.NET 8 спроектирован как кроссплатформенный, а .NET Framework предназначен для Windows.

Поскольку MessageBox.Show — это метод Windows Forms, он специфичен для Windows. Чтобы обеспечить совместимость, вам может потребоваться заключить его в блок условной компиляции, если вашему приложению необходимо поддерживать несколько платформ.

Если вы собираетесь использовать это приложение только в Windows, вы можете установить для целевой ОС значение Windows в свойствах проекта для проекта, что устранит предупреждение.

Спасибо #Jiachen за предложение. В этом случае я определенно получил ошибку, как я объяснил в своем ответе, и это помешало компиляции программы. Я постараюсь последовать вашему предложению, чтобы уменьшить количество получаемых мной тысяч предупреждений.

Haim Katz 07.07.2024 09:54

@JiachenLi MessageBox.Show — это не просто метод Windows Forms. Это также допустимо в WPF.

SezMe 07.07.2024 15:22
Ответ принят как подходящий

Спасибо @jmcihinney. Всегда приятно, когда на код смотрит другая пара глаз. Я не заметил, что вывод относится к строке MessageBox.Show. Код в окне сообщения об ошибке был несколько загадочным. Фактический код выглядит следующим образом:

MessageBox.Show("This reviewer has been sent a request." & vbCr & "Do you want to continue?", "Warning", MessageBoxButtons.YesNo)

Я создал строку вне вызова функции. Как ни странно, я также мог исправить ошибку следующим образом:

Dim ermsg = "This reviewer has been sent a request." & vbCr & "Do you want to continue?"
intresp = MessageBox.Show(ermsg, "Warning", MessageBoxButtons.YesNo)

Использование & или «+» для объединения строк не имело никакого значения, но оно не приняло ни того, ни другого внутри вызова MessageBox.Show().

Замена оператора конкатенации строк & на + не является правильным решением и не может решить вашу проблему. Непонятно, что именно исправило это, но дело было не в этом. Также нет проблем с использованием & внутри вызова функции.

GSerg 07.07.2024 20:38

Я описываю факты. Я согласен, что & и +, вероятно, не имели значения, но любой оператор в вызове функции создал ошибку. У меня в приложении было минимум 10 таких звонков. Всякий раз, когда строка объединялась при вызове функции, я получал ошибку. Как только я исключил вызов функции из ошибки, программа скомпилировалась. Понижение значения этого ответа является искажением фактов.

Haim Katz 08.07.2024 09:20

Просто из любопытства замените vbCr на System.Environment.NewLine прямо в MessageBox.Show(), как это было раньше.

HardCode 08.07.2024 18:22

MessageBox аварийно завершает работу, как только я пытаюсь объединить две строки. Даже это вызвало сбой MessageBox.Show("Hello" & "World") (замена & на + не изменила ситуацию).

Haim Katz 11.07.2024 06:19

Другие вопросы по теме