Patrick Skelton Ответов: 1

Как заставить visual studio 2017 войти в один из моих конструкторов?


Извините за общий и (надеюсь) простой характер этого вопроса, но я нигде не могу найти ответа на этот вопрос для VS2017.

Функция step-into (F11 на моей машине), похоже, нарушена для конструкторов. Кто-нибудь знает, как изменить это бесполезное поведение?

Обновление
Я должен здесь отсутствует опция в Visual Studio 2017. Теперь я заметил, что step-over (F10) переходит не к следующей строке, а к следующей точке останова.

Я не знаю, имеет ли это какое-то отношение к этому, но я только что нашел кучу вещей в основном файле WPF .csproj, которые я не узнаю:

<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{19445C4F-9102-4EDE-B898-6CEAEF581DD7}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>DoddPMP.WPF</RootNamespace>
    <AssemblyName>DoddPMP.WPF</AssemblyName>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
    <WarningLevel>4</WarningLevel>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <PublishUrl>publish\</PublishUrl>
    <Install>true</Install>
    <InstallFrom>Disk</InstallFrom>
    <UpdateEnabled>false</UpdateEnabled>
    <UpdateMode>Foreground</UpdateMode>
    <UpdateInterval>7</UpdateInterval>
    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
    <UpdatePeriodically>false</UpdatePeriodically>
    <UpdateRequired>false</UpdateRequired>
    <MapFileExtensions>true</MapFileExtensions>
    <ApplicationRevision>0</ApplicationRevision>
    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <UseApplicationTrust>false</UseApplicationTrust>
    <BootstrapperEnabled>true</BootstrapperEnabled>
  </PropertyGroup>


Что я уже пробовал:

Если я помещу точку останова внутри конструктора, это будет нормально.

Я уже включил опцию перехода в свойства, но не могу найти ничего подобного для конструкторов.

Код, который я сейчас пробую, находится в конструкторе WPF App (), но я почти уверен, что с этого момента у меня не было никаких проблем с отладкой VS2015.

Обновление
Ну, это странно и более чем немного тревожно. Удаление всей болтовни, которую я опубликовал выше, из файла проекта приводит к тому, что отладка работает должным образом внутри конструктора класса, созданного во время запуска приложения, но отладка все еще нарушена в основном файле App.xaml.cs.

F-ES Sitecore

Это статический конструктор, который вы пытаетесь отладить? Если нет, то он должен работать как обычно, если да, то конструктор вызывается только один раз, поэтому вы должны убедиться, что отладчик подключен, прежде чем класс будет доступен в первый раз.

Patrick Skelton

Спасибо за ответ.

Это не статический конструктор. Отладчик прикреплен, потому что я могу шагнуть нормально, за исключением проблемы отказа F11 шагнуть в конструктор.

Как предложил оригинальный Грифф, я создал новый проект WPF, добавил кнопку, а затем создал собственный класс POCO в обработчике щелчков. Я прекрасно могу войти в этот конструктор, поэтому предполагаю, что моя проблема как-то связана с тем, что я нахожусь в главном конструкторе App (). Хотя, как я уже сказал, У меня не было никаких проблем с этим на VS2015. Странный.

Richard Deeming

Вы случайно не отлаживаете сборку релиза?

Richard MacCutchan

Или, возможно, код нуждается в перестройке.

Patrick Skelton

Спасибо за ваши предложения. К сожалению, ни то, ни другое не является ответом. Я перестроился, и проект настроен на отладку.

Я использую Visual Studio с конца 90-х годов и никогда не видел ничего подобного.

Richard MacCutchan

Удаление материала из файлов .csproj, если вы не знаете, что это такое, как правило, не является хорошей идеей, так как это вполне может сломать что-то еще. Но это, конечно, звучит так, как будто некоторые настройки проекта не являются правильными. Вполне возможно, что при обновлении с 2015 по 2017 год что-то пойдет не так. Вы можете попробовать воссоздать проект под 2017 годом с нуля и добавить исходные файлы вручную.

Patrick Skelton

Я понимаю вашу точку зрения об удалении материала из файла проекта. Сначала я взял запасной вариант.

Я подозреваю, что действительно закончу тем, что воссоздам все решение вручную, когда у меня будет время. Я постараюсь не забыть вернуться к этому вопросу, чтобы сообщить, исправляет ли это его или нет.

1 Ответов

Рейтинг:
0

Patrick Skelton

Решение этой проблемы состояло в том, чтобы восстановить Visual Studio, а затем вручную воссоздать все решение с нуля.

Я не уверен, что оба эти шага были необходимы. Я подозреваю, что ремонт, возможно, был тем, что исправило его. Тем не менее, я чувствую себя лучше, воссоздав решение, потому что в основном приложении была эта болтовня .csproj файл досье, которое я не узнал.

К сожалению, мой ответ не является более убедительным. Если вы действительно столкнетесь с подобной проблемой, я бы посмотрел, исправит ли ее простой ремонт, прежде чем выполнять трудоемкую задачу воссоздания решения.

Надеюсь, это кому-то поможет.