Sln файл как сделать

Обновлено: 07.07.2024

У меня есть .sln файл от софта. Как сделать чтобы софт через время к примеру через каждые 2 секунды, сам запускал exe от .sln для каждого проекта, чтобы мне не открывать .sln файл и не нажимать на кнопку Start и потом снова закрывать скомпилированный exe от .sln .

Честно? нет. Заголовок об одном, спрашиваете другое, в тексте вопроса третье. И не зачем кричать капсом. Вы лучше задачу опишите, чего хотите в результате? может вы не стой стороны к ней подходите И соответственно новый exe который запустил комп от .sln файла, становится на замен тому exe который был до нового т.е. нужна автоматическая сборка и запуск проекта. Думаю стоит скорректировать вопрос, а то как-то долго до этой мысли добирались.

Если на машине установлена Студия, проще всего в cmd-файле написать

PATH TO VISUAL STUDIO — это путь к каталогу Visual Studio, выглядит обычно как C:\Program Files(x86)\Microsoft Visual Studio 12.0 или что-то наподобие.

solution.sln — файл с .sln, он у вас должен быть.

Если вам нужно построить несколько .sln, проще наверное написать скрипт на powershell:


202k 25 25 золотых знаков 273 273 серебряных знака 501 501 бронзовый знак У меня папка на раб столе, и в этой папке тоже папки, и в этих папках находятся sln файлы, ток как сделать чтобы на все шло ? просто надо " У меня папка на раб столе, и в этой папке тоже папки, и в этих папках находятся sln файлы, ток как сделать чтобы на все шло ? " <-- это сделать а как - я не знаю

В дополнение к ответу @VladD

Создайте .BAT файл в папке, где лежат нужные проекты и впишите в него строку:

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

UPD Для удобного запуска, лучшее решение на мой взгляд, в настройках компилируемых проектов, руками прописать путь для Release и/или Debug версии в отдельную общую папку, и в ней разместить Bat-файл с таким же циклом на запуск найденных exe-файлов. После этого можно собрать общий bat-файл, запускающий последовательно компиляцию и запуск.

Для тестирования нашего C/C++ анализатора PVS-Studio мы часто проверяем различные проекты с открытым исходным кодом и публикуем отчёты о найденных в них ошибках. И, конечно, очевидно, что для этого нам интересны проекты с большими объёмами исходного кода (сотни тысяч строк), ведь в нескольких десятках файлов ничего особенно не потестировать. Уже несколько раз нам попадались большие наборы, состоящие из сотен небольших открытых проектов. Примером таких коллекций проектов могут служить, например, наборы тестовых примеров для различных SDK и Framework'ов. Нам такие коллекции проектов особенно интересно проверять для тестирования поддержки анализатором различных специфичных конструкций кода, подтипов Visual C++ проектов и т.п.

Но у такого типа проектов существует не очевидный на первый взгляд недостаток — отсутствие единого проектного файла – решения. Зачастую, каждый проект в таких наборах независим и имеет совой solution. Понятно, что проверка 4-5 сотен sln файлов — не самое увлекательное занятие, причём работать с полученными таким путём сотнями отчётов будет весьма затруднительно.

Логика подсказывает, что для всех проектных файлов можно создать и один независимый sln файл — One Solution to Rule Them All, объединяющий все требуемые проекты. Но оказалось, что такая простая задача является нетривиальной для Visual Studio, ведь диалог добавления проекта позволяет выбирать только один проект за раз! Так что, даже если вам очень повезёт, и все проекты будут лежать в одной директории, процесс их добавления всё равно окажется мучительным.

И тут же поверхностный поиск показал, что не мы одни столкнулись с подобной проблемой. Но что обычно предлагают в таком случае? Сгенерировать "вручную" новый solution, и, открыв его как текстовый файл, добавить необходимые строки для каждого проекта. Что же скрывает за собой подобный метод? Ведь помимо необходимости вычитывать из каждого проекта его идентификаторы и конфигурации, не дай бог возникнет конфликт между зависимостями или теми же GUID'ами у хотя бы 2-х проектов. Ведь тогда придётся вручную обходить весь такой solution, чтобы определить проблему! В итоге же писать такую программу, которая должна будет всё это учитывать, но скорее всего, понадобится лишь пару раз, становится весьма обременительно.

Но ведь вся эта функциональность уже присутствует в самой Visual Studio — этот как раз тот самый Add Existing Project. Если бы была только возможность автоматизировать вызов данной команды и получение списка требуемых файлов. Но такая возможность существует, приём она может быть описана всего 4 строками кода:

Мы видим, что объект типа EnvDTE80.DTE2 позволяет программное добавить в текущее решение проект по имени файла. А ведь это как раз то, чего мы хотим! Причём метод AddFromFile также позволяет контролировать и добавляемые проекты, возвращая ссылку на каждый из них. А обертка этого кода в try. catch блок позволит отсечь все возможные конфликты между отдельными проектами.

Что же такое EnvDTE80.DTE2 и как его получить? Объект DTE (development environment) — это верхний объект API расширения среды Visual Studio, позволяющего автоматизировать работу с IDE и даже расширять возможности. Получить доступ к DTE можно несколькими разными способами, причём как из стороннего внешнего процесса, так и создав плагин-расширение (extension package) или подключаемый модуль для среды Visual Studio. А на нашем сайте есть цикл статей, посвящённый основам разработки подобных модулей расширения, в котором вы можете найти простые инструкции по созданию такого модуля прямо сейчас!

Если файл не в проекте можно его запустить на выполнение из netbeans-8.2-javaee?
Господа, скажите пожалуйста, если файл не в проекте можно его запустить на выполнение из.


Как создать Prefab если его нету в create?
В вкладке Project жму ПКМ -&gt; create и не нахожу там Prefab. (Версия Unity: 2019.3.1f1)

Почему веб-сайт считается беспроектным, если существует файл проекта .sln
Почему веб-сайт (веб-узел) считается беспроектным (в отличие от проектов веб-приложений), если на.

Как создать Windows Service (службу), если его нету в VS?
Здравствуйте! Поставил себе VS Professional 2013. Хотел создать Windows Service, но его там.

ты какой то странный.
а зачем ему твой VS, если есть mingw?

Ну затем что в CMake я выбрал в пункте "generator for this project" параметр VS 2019 поэтому и предполагал что будет ее компилятор использоваться.
Полазал и там, сделал все по инструкции. Проект скомпилировался (правда ехе файл не запускается, ошибка "Точка входа в процедуру "длинное непонятное имя" не найдена в библиотеке libstdc++-6.dll") Но проблема пока что не в этом, а в том что мне нужно проект собрать, создать sln файл чтобы можно было проект в студии редактировать, а не скомпилировать то что есть.

Как сделать надпись "файл не создан" если нужно его прочитать но файл ещё не создан?
Как сделать надпись &quot;файл не создан&quot; если нужно его прочитать но файл ещё не создан? Например в.

Как в экспертной системе обучать базу знаний что если в ней нету знания она сама его добавляла
Как в экспертной системе обучать базу знаний что если в ней нету знания она сама его добавляла .

Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он существует?
Как открыть файл на чтение и запись, создав его, если его не существует, и перезаписать, если он.

Как компилировать файл sln в exe? SharpDevelop
Я никак не могу скомпилировать файл sln в exe, что делать? Работаю в SharpDevelop, что делать?

Как правильно сделать декларацию класса видимой во всём проекте и всех его модулях?
Здравствуйте. Имеется класс декларированный в одном модуле (файле), а нужно использовать его.

Решение представляет собой структуру для организации проектов в Visual Studio. Решение хранит сведения о состоянии проектов в двух файлах:

SLN-файл (на основе текста, общий)

suo-файл (двоичный, параметры решения для конкретного пользователя)

Дополнительные сведения о suo-файлах см. в разделе пользовательские параметры решения (. Файл SUO).

Если пакет VSPackage загружен в результате ссылки в файле. sln, среда вызывает ReadSolutionProps чтение в SLN-файле.

Файл. sln содержит текстовую информацию, которую среда использует для поиска и загрузки параметров "имя-значение" для сохраненных данных и проекта VSPackage, на который он ссылается. Когда пользователь открывает решение, среда циклически переключается по данным preSolution , Project и postSolution в SLN-файле для загрузки решения, проектов в решении и всех сохраненных данных, присоединенных к решению.

Файл каждого проекта содержит дополнительные сведения, считанные средой для заполнения иерархии элементами этого проекта. Сохраняемость данных иерархии управляется проектом. Обычно данные не хранятся в файле. sln, хотя вы можете намеренно записать сведения о проекте в SLN-файл. дополнительные сведения о сохраняемости см. в статьях Project сохраняемость и открытие и сохранение Project элементов.

Заголовок файла

Заголовок файла SLN выглядит следующим образом:

Определения

Microsoft Visual Studio Solution File, Format Version 12.00
Стандартный заголовок, определяющий версию формата файла.

VisualStudioVersion = 15.0.26730.15
полная версия Visual Studio, которая недавно сохраняла файл решения. если файл решения сохраняется в более новой версии Visual Studio с тем же основным номером версии, это значение не обновляется, так что, чтобы уменьшить число обновлений в файлах решения.

MinimumVisualStudioVersion = 10.0.40219.1
минимальная (самая старая) версия Visual Studio, которая может открыть этот файл решения.

Определения

Microsoft Visual Studio Solution File, Format Version 12.00
Стандартный заголовок, определяющий версию формата файла.

VisualStudioVersion = 16.0.28701.123
полная версия Visual Studio, которая недавно сохраняла файл решения. если файл решения сохраняется в более новой версии Visual Studio с той же основной версией, это значение не обновляется, чтобы уменьшить количество изменений в файле.

MinimumVisualStudioVersion = 10.0.40219.1
минимальная (самая старая) версия Visual Studio, которая может открыть этот файл решения.

Тело файла

Текст файла. sln состоит из нескольких разделов GlobalSection , например:

Чтобы загрузить решение, среда выполняет следующую последовательность задач:

Среда считывает глобальный раздел файла SLN и обрабатывает все отмеченные разделы preSolution . В этом примере файла есть одна такая инструкция:

Когда среда считывает GlobalSection('name') тег, она сопоставляет имя с пакетом VSPackage с помощью реестра. Имя ключа должно присутствовать в реестре в папке [HKLM \<приложение с идентификатором реестра root > \солутионперсистенце\аггрегатегуидс]. Значение по умолчанию для ключей — это идентификатор GUID пакета VSPackage (REG_SZ), который записал записи.

Среда загружает пакет VSPackage, вызывает QueryInterface интерфейс VSPackage для IVsPersistSolutionProps интерфейса и вызывает ReadSolutionProps метод с данными в разделе, чтобы пакет VSPackage мог хранить данные. Среда повторяет этот процесс для каждого preSolution раздела.

Среда выполняет итерацию по блокам сохранения проекта. В этом случае существует один проект.

Эта инструкция содержит уникальный идентификатор GUID проекта и идентификатор GUID типа проекта. Эти сведения используются средой для поиска файла проекта или файлов, принадлежащих решению, и пакета VSPackage, необходимого для каждого проекта. Идентификатор GUID проекта передается в IVsProjectFactory для загрузки конкретных VSPackage, связанных с проектом, затем проект загружается пакетом VSPackage. В этом случае пакет VSPackage, загруженный для этого проекта, Visual Basic.

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

В зависимости от сведений, содержащихся в разделе проекта файла SLN, среда загружает каждый файл проекта. Затем сам проект отвечает за заполнение иерархии проекта и загрузку всех вложенных проектов.

После обработки всех разделов файла. sln решение отображается в обозреватель решений и будет готово к изменению пользователем.

Если ни один пакет VSPackage, реализующий проект в решении, не загружается, OnProjectLoadFailure вызывается метод, и каждый другой проект в решении получает возможность игнорировать изменения, которые он мог сделать во время загрузки. При возникновении ошибок анализа, как можно больше сведений сохраняется в файлах решения, и среда отображает диалоговое окно с предупреждением о том, что решение повреждено.

При сохранении или закрытии решения QuerySaveSolutionProps метод вызывается и передается в иерархию, чтобы узнать, были ли внесены изменения в решение, которое необходимо указать в SLN-файле. Значение null, передаваемое в QuerySaveSolutionProps в VSQUERYSAVESLNPROPS , указывает, что информация сохраняется для решения. Если значение не равно null, то сохраненная информация относится к конкретному проекту, определяемому указателем на IVsHierarchy интерфейс.

Если имеются сведения для сохранения, IVsSolutionPersistence интерфейс вызывается с указателем на SaveSolutionProps метод. WriteSolutionPropsЗатем метод вызывается средой для получения пар "имя-значение" из IPropertyBag интерфейса и записи сведений в SLN-файл.

SaveSolutionProps``WriteSolutionProps объекты и вызываются рекурсивно средой для получения сведений, которые должны быть сохранены из интерфейса, IPropertyBag пока все изменения не будут введены в файл. sln. Таким образом можно убедиться, что информация будет сохранена в решении и доступна при следующем открытии решения.

Каждый загруженный пакет VSPackage перечисляется, чтобы убедиться, что в файле. sln есть что-либо, что нужно сохранить. Это происходит только во время загрузки, в которое запрашиваются разделы реестра. Среда знает обо всех загруженных пакетах, так как они находятся в памяти во время сохранения решения.

Только файл. sln содержит записи в preSolution postSolution разделах и. В файле SUO Нет похожих разделов, так как решению требуется правильная загрузка этих сведений. Suo-файл содержит пользовательские параметры, такие как закрытые заметки, которые не предназначены для совместного использования или размещения в системе управления исходным кодом.

Читайте также: