Почему visual studio не запускает проект
Перейти к содержимому

Почему visual studio не запускает проект

  • автор:

Ошибка при сборке проекта в Visual Studio

Эта статья поможет устранить проблему, из-за которой невозможно создать проект на основе платформа .NET Framework в Visual Studio.

Исходная версия продукта: платформа .NET Framework 4.5
Исходный номер базы знаний: 2956788

Симптомы

Рассмотрим следующий сценарий.

  • У вас есть приложение, созданное с помощью проекта на основе платформа .NET Framework 4.0 в Microsoft Visual Studio.
  • Это приложение имеет элемент activeX Visual Basic 6.0.
  • Этот элемент управления ссылается на основной файл сборки взаимодействия Office. Например, файл office.dll.
  • Вы повторно нацелите проект на платформа .NET Framework 4.5.x в Visual Studio.

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

Ошибка AxImp: не удается разрешить зависимость для сборки «office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce11e9429c», так как она не была предварительно загружена. При использовании API ReflectionOnly зависимые сборки должны быть предварительно загружены или загружены по запросу с помощью события ReflectionOnlyAssemblyResolve.

Эта проблема возникает только на компьютере с платформа .NET Framework 4.0, платформа .NET Framework 4.5 или платформа .NET Framework 4.5.1 и установленным продуктом Microsoft Office.

Причина

Эта проблема возникает из-за изменения структуры среды CLR 2.0 и CLR 4.0 на загрузку библиотек типов и зависимостей.

Платформа .NET Framework 4.0 требует загрузки определенных сборок при разрешении типов из библиотеки типов, ссылающейся на основную сборку взаимодействия. Однако в платформа .NET Framework 2.0 это было не так. Импорт ActiveX не изменил поведение между платформа .NET Framework 2.0 и Платформой 4.0. Это изменение структуры предотвращает создание сборок взаимодействия. Поэтому, когда средство импорта ActiveX выполняется в Visual Studio, средство импорта не может разрешить и предварительно загрузить все ссылки на этот элемент ActiveX.

Обходной путь

Чтобы обойти эту проблему, создайте сборки взаимодействия с помощью AxImp.exe. Например, сообщение об ошибке, указанное в разделе Симптомы , указывает на то, что требуется сборка Microsoft Office версии 12.0. Чтобы устранить эту проблему, выполните следующие действия.

  1. Найдите требуемую сборку Office в глобальном кэше сборок (GAC).
  2. Выберите путь к версии Office, указанной в сообщении об ошибке. Это будет что-то вроде C:\Windows\assembly\GAC\office\12.0.0.0__71e9bce111e9429c .
  3. Выполните следующую команду в командной строке Visual Studio, чтобы создать новые сборки взаимодействия:

aximp < **Name of Ocx** >/out: < **Interop assembly name** >/rcw:

Если на компьютере не установлена основная сборка взаимодействия Office, средство AxImp.exe по-прежнему может разрешать типы без какой-либо помощи, даже если оно выполняется из процесса сборки Visual Studio.

Дополнительная информация

AxImp.exe — это средство командной строки, доступное в Visual Studio. Это средство принимает ссылочные сборки в качестве аргументов командной строки. Таким образом, это средство может загружать дополнительные сборки, ожидаемые платформа .NET Framework 4.0.

Обратная связь

Были ли сведения на этой странице полезными?

Почему Visual Studio не включает проект библиотеки в сборку, которая на него ссылается?

Visual Studio использует Configuration Manager , чтобы определить, какие проекты в решении автоматически включаются в определенную конфигурацию сборки или развертывания.

Некоторые шаблоны, созданные с помощью проекта библиотеки со ссылкой, уже будут содержать ссылку на библиотеку, включенную в конфигурацию; но в противном случае его необходимо задать вручную.

Использование Configuration Manager

  1. Открытие Configuration Manager сборки >
  2. Выберите конфигурацию для настройки, например отладка | i Телефон
  3. Выберите проверка boxes для проектов, которые вы хотите включить.

Серые поля обрабатываются автоматически и не должны изменяться.

Запуск программы C# в Visual Studio

Способ запуска программы зависит от того, с чего вы начинаете, от типа программы и от необходимости использовать отладчик. В самом простом случае для сборки и запуска открытого проекта в Visual Studio выполните следующие действия.

  • Нажмите клавишу F5, выберите Отладка>Начать с отладки в меню Visual Studio или выберите зеленую стрелку Запуск и имя проекта на панели инструментов Visual Studio.
  • Для запуска без отладки нажмите клавиши CTRL+F5 или выберите Отладка>Запуск без отладки в меню Visual Studio.

Screenshot that shows the Start button.

Screenshot that shows the Start button.

Запуск из проекта

Вы можете запустить проект C# или CSPROJ-файл, если это готовая к запуску программа. Если проект содержит файл C# с методом Main , а его выходные данные представляют собой исполняемый файл (EXE), скорее всего, он запустится в случае успешной сборки. Более новые версии C# не требуют Main метода. Вместо этого выполнение программ начинается с инструкций верхнего уровня. См. статью «Программы без основных методов».

  1. Если код программы уже находится в проекте Visual Studio, откройте проект. Для этого дважды щелкните CSPROJ-файл в проводнике Windows или выберите пункт Открыть проект в Visual Studio, найдите CSPROJ-файл и выберите его.
  2. После загрузки проекта в Visual Studio, если решение Visual Studio содержит несколько проектов, убедитесь, что для проекта задан метод Main , чтоб он считался запускаемым проектом. Чтобы задать запускаемый проект, щелкните имя проекта или узел правой кнопкой мыши в Обозревателе решений, затем выберите пункт Назначить запускаемым проектом в контекстном меню.

Screenshot that shows setting the startup project.

Screenshot that shows setting the startup project.

Запуск из кода

Если вы выполняете запуск из листинга кода, файла кода или небольшого числа файлов, сначала убедитесь, что запускаемый код происходит из надежного источника и является запускаемой программой. Любое приложение с Main методом, вероятно, является запущенной программой, но с текущей версией C#, программы без Main методов с операторами верхнего уровня также могут выполняться. Вы можете использовать шаблон консольного приложения, чтобы создать проект для работы с приложением в Visual Studio.

Листинг кода для отдельного файла

  1. Запустите Visual Studio и откройте пустой проект консольного приложения C#.
  2. Замените весь код в CS-файле проекта содержимым листинга кода или файла.
  3. Переименуйте CS-файл проекта в соответствии с именем файла кода.

Несколько листингов кода или файлов на диске

  1. Запустите Visual Studio и создайте новый проект соответствующего типа. Если вы не уверены, используйте консольное приложение C#.
  2. В новом проекте замените весь код в файле кода проекта на содержимое первого листинга кода или файла.
  3. Переименуйте файл кода проекта в соответствии с именем файла кода.
  4. Для каждого оставшегося файла кода:
    1. Щелкните правой кнопкой мыши узел проекта в Обозревателе решений и выберите пункт Добавить>Существующий элемент или выберите проект и нажмите клавиши SHIFT+ALT+A.
    2. Найдите и выберите файл кода, чтобы импортировать его в проект.

    Несколько файлов в папке

    Если у вас есть папка с большим количеством файлов, сначала найдите файл проекта или решения. Программы, создаваемые Visual Studio, содержат файлы проекта и решения. В проводнике Windows найдите файлы с расширением .csproj или .sln. Дважды щелкните CSPROJ-файл, чтобы открыть его в Visual Studio. См. раздел Запуск из проекта или решения Visual Studio.

    Если код находится в другой среде разработки, файл проекта отсутствует. Откройте папку, выбрав Открыть>Папка в Visual Studio. См. раздел Разработка кода без использования проектов и решений.

    Запуск из репозитория Azure DevOps или GitHub

    Если код, который вы хотите запустить, находится в GitHub или в репозитории Azure DevOps, можно использовать Visual Studio, чтобы открыть проект непосредственно из репозитория. См. раздел Открытие проекта из репозитория.

    Запуск программы

    Чтобы начать сборку программы, нажмите зеленую стрелку запуска на панели инструментов Visual Studio либо нажмите клавиши F5 или CTRL+F5. С помощью кнопки Запуск или F5 можно запустить программу в отладчике.

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

    Устранение неполадок

    Код может содержать ошибки. Или код может быть правильным, но может быть, он зависит от отсутствующих сборок или пакетов NuGet или предназначен для другой версии .NET. В таких случаях вы можете легко исправить сборку.

    Добавление ссылок

    Для успешной сборки код должен быть правильным и иметь правильные ссылки на библиотеки или другие зависимости. Красные волнистые линии в коде или записи в списке ошибок показывают ошибки еще перед компиляцией и запуском программы. Если возникают ошибки, связанные с неразрешенными именами, возможно, потребуется добавить ссылку и/или директиву using . Если код ссылается на отсутствующие сборки или пакеты NuGet, необходимо добавить эти ссылки в проект.

    Visual Studio пытается помочь определить отсутствующие ссылки. Если имя не разрешено, в редакторе появляется значок лампочки. Если щелкнуть лампочку, можно увидеть некоторые рекомендации по устранению проблемы. Возможные исправления:

    • Добавление директивы using
    • Добавление ссылки на сборку
    • Установка пакета NuGet
    Добавление директивы using

    Ниже приведен пример отсутствующей директивы using . Добавьте using System; в начало файла кода, чтобы разрешить неразрешенное имя Console .

    Screenshot of light bulb to add a using directive.

    Screenshot of light bulb to add a using directive.

    Более новые версии C# поддерживают неявные директивы using для некоторых часто используемых пространств имен, поэтому если при создании проекта этот параметр не нужен.

    Добавление ссылки на сборку

    Ссылки .NET могут быть сборками или пакетами NuGet. В исходном коде издатель или автор обычно объясняет, какие сборки требуются коду и от каких пакетов он зависит. Чтобы добавить ссылку в проект вручную, в Обозревателе решений щелкните правой кнопкой мыши узел Ссылки и выберите команду Добавить ссылку. В диспетчере ссылок найдите и добавьте требуемую сборку.

    Screenshot of the Add Reference menu.

    Screenshot of the Add Reference menu.

    Вы можете найти сборки и добавить ссылки, следуя инструкциям в разделе Добавление и удаление ссылок с помощью диспетчера ссылок.

    Добавление пакета NuGet

    Если Visual Studio обнаруживает отсутствующий пакет NuGet, появляется лампочка, позволяющая установить его.

    Screenshot of a light bulb to install a NuGet package.

    Screenshot of a light bulb to install a NuGet package.

    Если это не решает проблему и Visual Studio не удается найти пакет, попробуйте выполнить поиск в Интернете. См. раздел Установка и использование пакета NuGet в Visual Studio.

    Использование правильной версии .NET

    Так как разные версии .NET Framework обеспечивают некоторую степень обратной совместимости, более новая платформа может выполнять код, написанный для более старой платформы, без каких-либо изменений. Но иногда необходимо использовать определенную версию платформа .NET Framework. Вам может потребоваться установить определенную версию .NET Framework или .NET Core. См. раздел Изменение Visual Studio.

    Сведения об изменении целевой платформа .NET Framework версии см. в разделе «Изменение целевой платформы». Дополнительные сведения см. в разделе Устранение неполадок, связанных с настройкой для определенных версий платформы .NET Framework.

    Следующие шаги

    • Изучите среду разработки Visual tudio, прочитав раздел Добро пожаловать в интегрированную среду разработки Visual Studio.
    • Создание первого приложения C#.

    Обратная связь

    Были ли сведения на этой странице полезными?

    Visual Studio не открывает проект

    Визуал Студио не отображает проект, он его открывает, но там нет ни вкладки с кодом ни с самой формой

    Лучший ответ

    Может надо нажать треугольник рядом с WindowsFormsApp3 и посмореть что там?
    В частности два раза на щелкнуть на коде от дизайнера форм после раскрытия. ^_^
    Если ошибка — уже писать сюда.

    Реально хотя-бы ветку раскрыли, а то не видно что с проектом _вообще_!
    Может и всё нормально с ним. Просто все окна закрыты =)

    P.S: Windows Forms + C++ крайне не рекомендую. Собственно и Microsoft сам не в воссторге от своей-же «технологии» скрещивания удава с носорогом.

    AljebroПросветленный (27088) 5 лет назад

    >> P.S: Windows Forms + C++ крайне не рекомендую.
    Это да, но там всё же C# нарисован слева от WindowsFormsApp3

    . Гений (84849) Не разглядел =) Ну и поленился открыть отдельно в нормальном виде скрин.
    Остальные ответы

    Танец с бубном от компании Microsoft 🙂

    Для того, чтобы создать проект Windows Forms в среде Visual Studio C++2017 необходимо убедиться в том, что пакет C++/CLI установлен. Для этого запустите Visual Studio Installer и нажмите кнопку Изменить. На вкладке Рабочие нагрузки для общего компонента Разработка классических приложений на C++ должна быть установлена галочка. Если её нет, то установите её. На вкладке Отдельные компоненты в окне слева прокрутите список компонентов вниз до раздела Компиляторы, средства сборки и среды выполнения и напротив компонента Поддержка C++/CLI установите галочку. В правом нижнем углу нажмите кнопу Изменить. Начнётся загрузка, после которой будет выполнена последующая установка. Если галочки везде проставлены, то можно перейти к выполнению первого пункта Инструкции. Если нет, то закройте Visual Studio и откройте её снова. После того как откроется окно среды выполните следующие пункты:

    1. Создать проект — Ctrl+Shift+N, либо через меню: Файл / Создать / Проект.
    2. В левой области окна создания проекта раскрыть узел: Visual C++.
    3. Выбрать пункт Среда CLR.
    4. В центральной области окна выбрать пустой проект CLR.
    5. В поле — Имя решения — задать имя WindowsForms
    6. В поле — Расположние — указать путь для сохранения пректа либо выбрать его, используя Проводник, для чего нажать кнопку — Обзор.
    7. Галочку для Создать каталог для решения — оставить.
    8. Выбрать Платформу .NET Framework 4.7 или выше
    9. Нажать в правом нижнем углу окна кнопку — OK
    10. Дождаться завершения операции, результатом которой будет создание четырёх каталогов, три из которых пустые, а каталог Внешние зависимости будет содержать ссылку на библиотеку ядра .NET Framework
    11. В Обозревателе решений выделить имя проекта, которое расположено под Решением и нажать сочетание клавиш Alt+Enter или же выполнить клик правой кнопкой мыши и в открвышемся контекстном меню выбрать пункт Свойства (в самом низу)
    12. В открывшемся окне слева в Свойствах конфигурации раскрыть пункт Компоновщик
    13. Далее в поле слева выбрать пункт Система
    14. В поле справа для Подсистемы выбрать параметр Windows (/SUBSYSTEM:WINDOWS)
    15. Нажмите кнопку Применить
    16. Далее в поле слева выбрать пункт Дополнительно
    17. В поле справа для Точка ввода введите параметр Main
    18. Нажмите кнопку ОК, окно закроется
    16. В Обозревателе решений выделить имя проекта, кликнуть правой кнопкой мыши и из контекста выбрать Добавить / Создать элемент.
    17. В поле слева выбрать Visual C++ / UI
    18. В центральном поле выбрать Форма Windows Forms
    19. Нажмите в правом нижнем углу окна кнопку Добавить
    20. В поле текстового редактора среды откроется файл MyForm.h [Конструктор], и сообщение об ошибке. Закройте его кликом по крестику
    21. Откройте файл MyForm.cpp и добавьте в него следующий код ниже строки #include «MyForm.h»

    using namespace System;
    using namespace System::Windows::Forms;
    [STAThreadAttribute]
    void Main(array^ args) Application::EnableVisualStyles();
    Application::SetCompatibleTextRenderingDefault(false);
    WindowsForms::MyForm form;
    Application::Run(%form);
    >

    22. Сохраните файл, закройте, а затем снова откройте Visual Studio и запустите свой проект: Файл / Последние проекты и решения
    23. Нажмите клавишу F5

    makfromkzВысший разум (127018) 5 лет назад
    Это не просто танец с бубном — это целое многочасовое представление с множеством бубнов ))))
    Николай Веселуха Высший разум (360914) Каких нервов мне это стоило))

    Вид — Обозреватель решений — (Далее появится окно со всеми файлам(кодами, конструкциями итд вашего проекта) — нажимаете на них и открываете

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *