Мне нужно поддержать некоторый устаревший код, который написан на VB.NET.Это решение WCF, которое в настоящее время работает в производстве.Однако, когда я клонирую репо и загружаю его в VS2017 Build 15.8.5, я не вижу никаких проблем с синтаксисом.Нет красных волнистых линий.Но когда я перестраиваю решение, я получаю ошибки сборки в окне «Вывод», но никаких ошибок в списке ошибок.
Вот часть моего окна вывода.
3>Building directory '/App_Code/'.
3>
3>..\ICDI_WCFService.vb(20,0): error BC32035: Attribute specifier is not a complete statement. Use a line continuation to apply the attribute to the following statement.
3>..\ICDI_WCFService.vb(29,0): error BC30604: Statement cannot appear within an interface body. End of interface assumed.
3>..\ICDI_WCFService.vb(30,0): error BC30001: Statement is not valid in a namespace.
3>..\ICDI_WCFService.vb(44,0): error BC30289: Statement cannot appear within a method body. End of method assumed.
А вот пример исходного кода, на который ссылаются сообщения об ошибках
<ServiceContract()>
Public Interface IIMb
''' <summary>
''' Used only to expose unused types.
''' <para>WCF does not pass through any classes/enums/etc. that are not explicitly used as either input or ouput of a method</para>
''' <para>So, to expose those types, this method was created.</para>
''' </summary>
''' <param name="imbMailClasses"></param>
''' <remarks></remarks>
<OperationContract()>
Sub ExposesUnusedTypes(ByVal imbMailClasses As MAILPiece.IMb.MailClasses)
''' <summary>
''' Creates IMb PICs for Basic Confirm.
''' <para>NOTE: Removes one Address_Only Transaction Count per PIC generated.</para>
''' </summary>
''' <param name="authHeader"></param>
''' <param name="userID"></param>
''' <param name="amount"></param>
''' <param name="barcodeIdentifier"></param>
''' <param name="classAndAddressCorrectionOption"></param>
''' <returns>Array [String]</returns>
''' <remarks></remarks>
<OperationContract()>
Function CreatePICs_BasicConfirm(ByVal authHeader As AuthHeader, ByVal userID As Integer, ByVal amount As Integer,
ByVal barcodeIdentifier As MAILPiece.IMb.BarcodeIdentifiers,
ByVal classAndAddressCorrectionOption As MAILPiece.IMb.ClassAndAddressCorrectionOptions_Basic_Confirm) As String()
Он работает как и не используется правильно, но, как я уже сказал, этот код работает долго, поэтому мне интересно, нет ли проблемы с VS2017
Сотрудник клонировал тот же репозиторийв сборку VS2017 15.4.0 и имел ту же проблему.
Последний раз она работала в VS2017 этой весной, поэтому она была преобразована из VS2015 в VS2017, но я должен предположить, что это была версия ранее, чем VS2017build 15.4.0
Однако с тех пор я установил .NET Core 2.x SDK на свой ноутбук DEV.
Прежде чем приступить к настройке чистого ноутбука с помощью VS2017 Build 15.0Я хотел посмотреть, сталкивался ли кто-нибудь с этой проблемой.
Есть идеи?
ОБНОВЛЕНИЕ 1
Это устаревшее решение использует проект веб-сайта VB для службы WCF (оболочка?) И не имеет файла vbproj.
Есть другие проекты в решении, на которые ссылается этот проект веб-сайта, у которых есть файлы vbproj (и у них нет настройки LangVersion), но у этого нет.Однако я могу щелкнуть правой кнопкой мыши имя проекта и выбрать «Редактировать свойства элемента проекта», и я вижу, что VB Language Level установлен по умолчанию.Я попытался установить его в Visual Basic .NET 15, и в ошибках не было никакой разницы.
Если я пытаюсь добавить подчеркивание (для продолжения строки) после атрибута, is исчезает, как только я выхожу изline.
![Screenshot of project right-click menu](https://i.stack.imgur.com/73VkQ.png)
Обновление 2
Подсвеченный элемент CDI_WCFService3 на изображении обозревателя решений выше выглядит следующим образомдолжен быть проект с файлом vbproj, но в самой папке нет файла vbproj.Существует файл web.config, и в этом файле web.config находится раздел, показанный ниже;
Это единственное, что даже упоминает VB.
Вот скриншот структуры папки.
![project folder](https://i.stack.imgur.com/dslLH.png)