Как заставить файл решения (SLN) быть открытым в Visual Studio 2013?
попытка открыть решение VS 2012 (SLN-файл) явно в VS 2013 завершается успешно. Просто дважды щелкните его в Проводнике Windows, все еще открывает его в VS 2012 вместо этого.
Я читала «Visual Studio 2012 не преобразует решение vs2010?» и следовал предложение «сохранить как. «файл решения.
по-прежнему открывается в VS 2012 по умолчанию.
мой вопрос:
Как изменить файл SLN на принудительно открыть его в Visual Studio 2013?
6 ответов
на показывает предназначены версия как одна из ранних линий — например:
однако — он может только использовать это, если приложение по умолчанию для .sln файлы-это «селектор версий Microsoft Visual Studio». Это не редкость для по умолчанию .sln приложение а конкретные версия. В windows 8:

вы можете сказать, что по умолчанию, потому что он говорит «продолжайте использовать»:


обратите внимание, что вы также можете принудительно обновить a .фсл или .файл proj с помощью командной строки, где devenv является целевой версией IDE:
обратите внимание, что это не открывает Visual Studio. Альтернативой является выбор в среде IDE «Сохранить как» для файла решения и перезапись или сохранение решения под новым именем.
похоже, что у OP уже есть рабочий ответ . но для меня проблема была в другом. У меня было решение VS 2012 (несколько на самом деле) и я хотел преобразовать их в 2013 (что, как я понимаю, является тривиальным изменением .sln-файл, но я хотел, чтобы это было сделано автоматически, если бы была какая-то секретная логика обновления, о которой я не знал).
поэтому я подумал, что открою его в VS2013, он автоматически обновится, как ожидалось, а затем я буду настроен на двойной щелчок по решению и увижу его в VS2013 идти вперед. Но открытие в VS2013 не обновило решение для меня автоматически, как ожидалось, и я не мог найти явный способ принудительного обновления после открытия файла в VS2013. Я мог бы работать с решением, сохранять свои изменения и закрывать VS2013, но.СЛН останется неизменным и обновленных.
оказывается, моя проблема заключалась в том, как я открывал решение . по привычке я щелкаю Правой Кнопкой Мыши файлы и выберите «Открыть с», чтобы выбрать программу, которую я хочу использовать для открытия папка. Я часто это делаю. Обратите внимание, что я не говорю об изменении программы «открыть с помощью» по умолчанию, а просто открываю файл с определенной программой Один раз. Поэтому я бы щелкнул Правой Кнопкой Мыши .sln файл. откройте с помощью Visual Studio 2013 . и ничего не улучшится.
В конце концов я подумал зайти в VS2013, затем сделать Файл > Открыть и выбрать.файл sln (это мне чуждо, так как я вряд ли когда-либо открывал что-либо таким образом, возможно, вы такой же). В любом случае, это обновило файл решения немедленно.
после обновления, строки 2-3 части .файл sln изменен с этого:
Итак, из моего опыта, чтобы автоматически обновить VS2012 .sln для VS2013, вы должны открыть VS2013 и выбрать.sln из диалогового окна Файл > Открыть. Использование оболочки explorer для принудительного выполнения .файл sln для открытия в VS2013 не вызывает логику обновления (по-видимому).
в качестве дополнительной заметки я протестировал другое решение и после создания изменения через Configuration Manager (который, очевидно,» касается».sln-файл) он обновил VS2012 до VS2013, даже после того, как открыл его с помощью правой кнопки мыши.
У меня было решение, которое ранее было успешно обновлено с 2010 по 2013 год, но все же показало .sln как связанный с 2010.
я протестировал все методы, приведенные в этом потоке, и единственный, который успешно исправил .sln должен был открыть только Visual Studio 2013, затем открыть решение, которое все еще было связано с 2010 в IDE, а затем использовать [файл] > [сохранить (имя).sln as] для перезаписи существующего .sln файл.
настройка файла assoc .sln, который должен быть «селектором версий Visual Studio», не изменился, и решение продолжало открываться в 2010 году.
devenv (имя).метод sln / upgrade не изменил мой.sln файл.
взлом необработанного текста .sln файл поврежден и не открывать вообще.
чтобы решить эту проблему, я просто изменил следующие строки .sln файл:
строка комментария должна быть изменена по мере ее анализа загрузчиком решений.
Это может работать для читателей, пытающихся обновить файл решения до Visual Studio 2015. (Я обновил решение VS 2012.)
- откройте решение в VS 2015.
- Добавить новый проект в решение. (Я добавил тестовый проект.)
- удалить проект.
- сохранить решение.
вы можете удалить удаленную папку проекта в это время, так как Шаг 3 не удалил ее.
Это сработало для меня, когда ни zumey это, ни TCC ответы сделал.
редактировать
Метро Смурф имел аналогичный, но более простой ответ, чем мой для аналогичный вопрос. Его шаги были:—1—>
Как конвертировать сценарии Powershell с формата PS1 в EXE
Для сценариев Powershell существует отдельный формат '.ps1'. Этот формат можно преобразовать в полноценный .exe файл. Кроме удобств использования exe файлов описанные способы преобразования покажут и функциональные преимущества. Часть преимуществ, которые можно заметить сразу:
- политики — у вас могут блокироваться запуски сценариев имеющие расширения скриптовых языков;
- понятное назначение — все пользователи Windows знают для чего нужны файлы с буквами .exe на конце названия. Расширение .ps1 может вызывать вопросы даже у администраторов;
- запуск — exe файл запускается двойным кликом, а ps1 — через консоль с настроенной политикой безопасности;
- редактирование — поместив сценарий Powershell в exe файл его будет сложнее отредактировать;
- срытие консоли — простой запуск скриптов PS1 всегда вызывает окно консоли. Один из способов обойти его — с помощью exe файла.
Еще нужно отметить, что exe файл можно рассмотреть как архив с файлами. То есть мы можем поместить в 1 exe файл сам сценарий Powershell и файлы (например пароли, адреса, таблицы и т.д.). Это преимущество избавляет нас от ситуации с отсутствующими файлами и доступами к ним, которые могут быть у обычного сценария.
Навигация по посту
В большинстве программ, которые будут рассмотрены ниже, конвертация форматов называется "компиляция". На самом деле это не совсем так. По-большему счету они добавляют какой-то скрипт на C# поверх вашего сценария и упаковывают в exe (проще сказать "инкапсуляция"). Какого-то очень сложного процесса перевода сценария с одного языка на другой — нет.
В этой статье будут рассмотрено несколько способов создания .exe файлы из .ps1. Самыми удобными и легкими способами — являются первые 3. Способы должны подойти для интерпретаторов Powershell 5.1+ и 6-7+. В конце статьи есть таблица с итогами.
PS2EXE
Модуль ps2exe имеет консольный и графический режим работы. На мой взгляд PS2EXE — это самый простой и удобный способ создания EXE по следующим причинам:
- Доступен из репозитория Powershell;
- Единственное предназначение модуля — конвертация форматов;
- Есть консольный вариант и в стиле PS;
У этого способа так же есть и минус. Как сообщал автор проекта с помощью этого модуля, когда-то, был упакован в .exe вирус. После этого, некоторые антивирусы, стали срабатывать на файлы .exe упакованные этим модулем. Мой антивирус таких сигнатур не нашел. Проект популярный и имеет 200 звезд и с открытым кодом. Тем не менее доверять автору или нет — решать вам.
Установить его можно с помощью следующей команды:
Вам может пригодится основная информация по модулю, которую можно получить так:

На скриншоте выше отмечена, например, ссылка на гитхаб, где есть обсуждение этого модуля и его возможностей.
Консоль
У модуля есть несколько алиасов, которые работают одинаково. Самый простой способ создания exe файла следующий:

У команды модуля есть ряд дополнительных параметров увидеть которые можно в справке:
Отмечу наиболее важные параметры:
- x86-x64 — компиляция под определенную архитектуру. Если этого не указано, то используется значение по умолчанию (обе архитектуры);
- title — заголовок консоли;
- noConsole — не отображает консоль при запуске скрипта;
- requireAdmin — запрашивать права администратора (UAC);
- credentialGUI — вывод диалогового окна для ввода учетных данных.
Если вы используете параметр noConsole, обратите на разное поведение с выводом в stdout. Без указания параметра noConsole — все будет выведено в консоль, а с параметром — в диалоговые окна.
В примере ниже я создал exe файл, который выполняет одну команду "New-Item". Эта команда возвращает информацию о созданном объекте. Если вы не помещаете результат команды в переменную, то он попадает в stdout. Результат команды будет выведен построчно в диалоговых окнах:

Это можно было бы исправить поместив команду в переменную:
PS2EXE доступен и в графическом варианте. Папка, в которой лежит файл для запуска GUI, указана в описании модуля (на скриншоте выше). Обычно это один из следующих путей:
В папке модуля будет папка с версией. Внутри этих папок файл 'Win-PS2EXE.exe'.

Параметры графического интерфейса достаточно очевидны и не нуждаются в дополнительном объяснении.
Как работать в Powershell с модулями и профилями и повторно использовать данные
IExpress 2.0
Отличительной особенностью этого способа в том, что он уже установлен в Windows. IExpress предназначен не только для сценариев Powershell. Основная задача программы создания .exe для установки и запуска программ и поэтому имеет больше возможностей. Запустить редактор вы можете через любую консоль:

Большая часть выбора предназначена для случаев, если вы планируете установить какую-то программу (распаковать в Program Files, реестр и т.д.), а не просто запустить .exe. Из-за этого большую часть выбора можно оставить по умолчанию. На скриншоте выбраны те пункты, которые понадобятся вам для конвертации ps1 в exe:

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

- Нужен, если вы хотите ограничить права пользователя какой-то лицензией (EULA). Т.е. обычное пользовательское соглашение;
- Какие файлы вы планируете включить в пакет EXE. Это может быть, например, сертификат;
- Нужно указать скрипт и название программы, которые его запустит. Конечно это будет интерпретатор 'powershell.exe'. Так же может понадобится установить политику запуска скрипта на нужный уровень. Пример того что вы можете использовать:
- Команда, которая будет запущена после предыдущего шага;
- Будет ли запущен файл в развернутом окне консоли, свернутом или скрытом варианте.

- Сообщение, которое появляется после успешной установки. В случае обычного запуска файла оно не нужно;
- Путь, где должен быть создан файл exe;
- Пункты, которые используются в старых ОС и при установке программ. Скрывают от пользователя процесс копирования файлов и включают поддержку длинных имен файлов.
- Нужна ли перезагрузка;
- Файл конфигурации, который можно установить в самом 1-ом окне.
Останутся еще 2 окна, которые не будут иметь выборов. После этого появится файл .exe пригодный для запуска.
В IExpress, в отличие от других программ, нельзя установить требования к привилегиям. Вы либо явно запускаете программу от администратора или от обычного пользователя (в песочнице).
ISE Steroids
В Windows есть собственный редактор для сценариев Powershell, который называется ISE (Integrated Scripting Environment). Для этого редактора существует расширение с названием ISE Steroids. Расширение добавляет множество функций и одна из функций — это конвертация файлов. Плюсы этого способа от следующих в том, что оно бесплатное, до сих пор поддерживается и является расширением (а не полноценной программой).
Существует несколько способов установки этого расширения. Самый простой из репозитория:
После установки, в самом ISE нужно выполнить следующую команду:
Если при установке могут появиться ошибки. Это ожидаемая ситуация и исправить ее можно скачав пакет с официального сайта ISE Steroids или использовав другие методы описанные там же.
После установки расширения, зайдя в "Сервис", можно увидеть кнопку "Turn Code into EXE. ":

В новом окне настраивается версионность приложения, поведение окна консоли при запуске приложения, устанавливается иконка и привилегии для запуска. При нажатии на кнопку "Create Application" — нужно указать путь для сохранения готового файла:

PS1 to EXE
Менее популярный проект, который уже около 2 лет не поддерживается и является редактором кода с возможностью конвертации. На официальном сайте и Github скачать программу нельзя и ее нужно искать по сайтам. Достаточно много минусов, что бы пользоваться этой программой в последнюю очередь.
Консоль
После установки файл, для запуска консоли, находится в одной из следующих папок:
Консольный вариант команды не несет принципов Powershell в наименовании ключей. "PS1 to exe" использует стиль CMD. Пример создания exe файла без показа консоли:
Параметр /include добавляет в exe дополнительные файлы и папки.
Графический интерфейс программы имеет так же встроенный редактор кода. После открытия файла мы увидим следующую картинку:

- Файл, который будет добавлен в exe;
- Дополнительные настройки для конвертации;
- Выбор дополнительных файлов, если вы планировали их включить;
- Конвертация в exe.
VSCode и Powershell Pro Tools
VSCode — это современный редактор кода от Microsoft. Он поддерживает множество языков через разные расширения, в том числе и Powershell. Одно из таких расширений, Powershell Pro Tools, позволяет выполнять конвертацию ps1 в exe. Единственный плюс этого способа в том, если вы пользователь VSCode. Минут — расширение платное.
Выглядит это расширение следующим образом:

После установки расширения и открытии вашего скрипта вам нужно нажать кнопку в правом-верхнем углу экрана для создания .exe файла. При первом нажатии на кнопку, в корневой директории VSCode создается файл конфигурации с расширением "psd1". В этом файле, будет указан путь куда будет сохранен .exe файл:


Powershell Studio
Еще один способ создать exe это использовать Powershell Studion. Эта программа — крупный IDE, который разрабатывался специально под Powershell и, конечно, он является платным (45 дней trial).
После открытия файла в IDE нужно открыть настройки пакетов:

В главном окне вы должны выбрать интерпретатор для выполнения сценария Powershell. Скорее всего вам нужен будет 'Windows Powershell', а не более старшие версии, так как они не устанавливаются по умолчанию в Windows:

В следующем окне нужно выбрать путь, где файл должен быть сохранен и выполнить билд:

У Powershell Studio есть много преимуществ. Например он может подписывать конвертированные файлы вашим сертификатом — такой возможности, в других программах, нет.
Остальные варианты
В статье перечислена только часть программ, которые могут выполнить конвертацию. Есть множество других программ. Например редактор PowerGUI. Этот проект был закрыт более 4 лет назад т.к. он был выкуплен компанией DELL. Инсталлятор можно найти только на не официальных сайтах. Из-за отсутствия обновления и поддержки я не стал его включать в список.
Так же есть следующая найденная таблица, которая примерно суммирует написанное выше. Отмечу, что я нашел в ней ошибки — ISE Steroids, например, бесплатное расширение. Могут быть и другие.
Как создать exe файл для Python кода с помощью PyInstaller
Установка PyInstaller не отличается от установки любой другой библиотеки Python.
Вот так можно проверить версию PyInstaller.
Я использую PyInstaller версии 4.2.
Создание exe файла с помощью PyInstaller
PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:
- Считывает файл скрипта.
- Анализирует код для выявления всех зависимостей, необходимых для работы. spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
- Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
- Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
- Создает папку DIST в папке со скриптом, если она еще не существует.
- Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.
Если использовать параметр команды onedir или -D при генерации исполняемого файла, тогда все будет помещено в одну папку. Это поведение по умолчанию. Если же использовать параметр onefile или -F , то все окажется в одном исполняемом файле.
Возьмем в качестве примера простейший скрипт на Python c названием simple.py, который содержит такой код.
Создадим один исполняемый файл. В командной строке введите:
После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.

Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.

Вот что произойдет после запуска файла.

Также, открыв spec-файл, можно увидеть раздел datas, в котором указывается, что файл netflix_titles.csv копируется в текущую директорию.
Запустим файл simple1.exe, появится консоль с выводом: Всего фильмов: 7787 .
Добавление файлов с данными и параметр onefile
Если задать параметр —onefile , то PyInstaller распаковывает все файлы в папку TEMP, выполняет скрипт и удаляет TEMP. Если вместе с add-data указать onefile, то нужно считать данные из папки. Путь папки меняется и похож на «_MEIxxxxxx-folder».
Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.
После успешного создания файл simple1.exe появится в папке DIST.
Можно скопировать исполняемый файл на рабочий стол и запустить, чтобы убедиться, что нет никакой ошибки, связанной с отсутствием файла.

Дополнительные импорты с помощью Hidden Imports
Исполняемому файлу требуются все импорты, которые нужны Python-скрипту. Иногда PyInstaller может пропустить динамические импорты или импорты второго уровня, возвращая ошибку ImportError: No module named …
Для решения этой ошибки нужно передать название недостающей библиотеки в hidden-import.
Например, чтобы добавить библиотеку os, нужно написать вот так:
Файл spec
Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.
PyInstaller считывает содержимое файла для создания исполняемого файла, определяя все, что может понадобиться для него.
Файл с расширением .spec сохраняется по умолчанию в текущей директории.
Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:
- Собрать в один бандл с исполняемым файлы данных.
- Включить другие исполняемые файлы: .dll или .so.
- С помощью библиотек собрать в один бандл несколько программы.
Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.
Компилируем модель с помощью PyInstaller:
После успешной компиляции запускаем исполняемый файл, который возвращает следующую ошибку.
Исправим ее, обновив файл spec. Одно из решений — создать файл spec.
Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.
Поскольку был использован параметр —onefile , то внутри файла будет только раздел exe.
Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.
Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.
Создаем хуки и добавляем их в hidden imports и раздел данных.
Файлы хуков расширяют возможность PyInstaller обрабатывать такие требования, как необходимость включать дополнительные данные или импортировать динамические библиотеки.
Обычно пакеты Python используют нормальные методы для импорта своих зависимостей, но в отдельных случаях, как например TensorFlow, существует необходимость импорта динамических библиотек. PyInstaller не может найти все библиотеки, или же их может быть слишком много. В таком случае рекомендуется использовать вспомогательный инструмент для импорта из PyInstaller.utils.hooks и собрать все подмодули для библиотеки.
Скомпилируем модель после обновления файла simpleModel.spec.
Скопируем исполняемый файл на рабочий стол и увидим, что теперь он корректно отображает версию TensorFlow.
Вывод:
PyInstaller предлагает несколько вариантов создания простых и сложных исполняемых файлов из Python-скриптов:


