Сохранение данных в файлах проекта
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Подтип проекта может сохранять и извлекать данные, относящиеся к подтипу, в файле проекта. Платформа управляемых пакетов (MPF) предоставляет два интерфейса для выполнения этой задачи:
- Интерфейс IVsBuildPropertyStorage позволяет получить доступ к значениям свойств из раздела MSBuild файла проекта. Методы, предоставляемые IVsBuildPropertyStorage любым пользователем, могут вызываться любым пользователем, когда пользователю нужно загружать или сохранять связанные данные сборки.
- Используется IPersistXMLFragment для сохранения данных, связанных с сборкой, в ФОРМАТЕ XML свободной формы. Методы, предоставляемые IPersistXMLFragment Visual Studio, вызываются всякий раз, когда Visual Studio должен сохранять данные, не связанные с сборкой, в файле проекта. Дополнительные сведения о сохранении сборок и не связанных с сборкой данных см. в разделе «Сохранение данных» в файле проекта MSBuild.
Сохранение и извлечение связанных данных сборки
Сохранение связанных данных сборки в файле проекта
- SetPropertyValue Вызовите метод, чтобы сохранить полный путь к файлу проекта.
private SpecializedProject project; IVsBuildPropertyStorage projectStorage = (IVsBuildPropertyStorage)project; string newFullPath = GetNewFullPath(); // Set a full path of the project file. ErrorHandler.ThrowOnFailure(projectStorage.SetPropertyValue( "MSBuildProjectDirectory", String.Empty, (uint)_PersistStorageType.PST_PROJECT_FILE, newFullPath));
Получение связанных данных сборки из файла проекта
- GetPropertyValue Вызовите метод, чтобы получить полный путь к файлу проекта.
private SpecializedProject project; IVsBuildPropertyStorage projectStorage = (IVsBuildPropertyStorage)project; string fullPath; // Get a full path of the project file. ErrorHandler.ThrowOnFailure(projectStorage.GetPropertyValue( "MSBuildProjectDirectory", String.Empty, (uint)_PersistStorageType.PST_PROJECT_FILE, out fullPath));
Сохранение и извлечение связанных с сборкой данных
Сохранение данных, связанных с сборкой, в файле проекта
- IsFragmentDirty Реализуйте метод, чтобы определить, изменился ли фрагмент XML после последнего сохранения в текущем файле.
public int IsFragmentDirty(uint storage, out int pfDirty) < pfDirty = 0; switch (storage) < case (uint)_PersistStorageType.PST_PROJECT_FILE: < if (isDirty) pfDirty |= 1; break; >case (uint)_PersistStorageType.PST_USER_FILE: < // We do not store anything in the user file. break; >> // Forward the call to inner flavor(s) if (pfDirty == 0 && innerCfg != null && this.innerCfg is IPersistXMLFragment) return ((IPersistXMLFragment)this.innerCfg).IsFragmentDirty(storage, out pfDirty); return VSConstants.S_OK; >
public int Save(ref Guid guidFlavor, uint storage, out string pbstrXMLFragment, int fClearDirty) < pbstrXMLFragment = null; if (IsMyFlavorGuid(ref guidFlavor)) < switch (storage) < case (uint)_PersistStorageType.PST_PROJECT_FILE: < // Create XML for our data. XmlDocument doc = new XmlDocument(); XmlNode root = doc.CreateElement(this.GetType().Name); XmlNode node = doc.CreateElement(targetsTag); node.AppendChild(doc.CreateTextNode(this.TargetsToExecute)); root.AppendChild(node); node = doc.CreateElement(updateTargetsTag); node.AppendChild(doc.CreateTextNode(this.UpdateTargetList.ToString())); root.AppendChild(node); doc.AppendChild(root); // Get XML fragment representing our data pbstrXMLFragment = doc.InnerXml; if (fClearDirty != 0) isDirty = false; break; >case (uint)_PersistStorageType.PST_USER_FILE: < // We do not store anything in the user file. break; >> > // Forward the call to inner flavor(s) if (this.innerCfg != null && this.innerCfg is IPersistXMLFragment) return ((IPersistXMLFragment)this.innerCfg).Save(ref guidFlavor, storage, out pbstrXMLFragment, fClearDirty); return VSConstants.S_OK; >
Получение данных, связанных с сборкой, в файле проекта
- InitNew Реализуйте метод для инициализации свойств расширения проекта и других независимых от сборки данных. Этот метод вызывается, если в файле проекта отсутствуют данные конфигурации XML.
public int InitNew(ref Guid guidFlavor, uint storage) < //Return,if it is our guid. if (IsMyFlavorGuid(ref guidFlavor)) return VSConstants.S_OK; //Forward the call to inner flavor(s). if (this.innerCfg != null && this.innerCfg is IPersistXMLFragment) return ((IPersistXMLFragment)this.innerCfg).InitNew(ref guidFlavor, storage); return VSConstants.S_OK;
public int Load(ref Guid guidFlavor, uint storage, string pszXMLFragment) < if (IsMyFlavorGuid(ref guidFlavor)) < switch (storage) < case (uint)_PersistStorageType.PST_PROJECT_FILE: < // Load our data from the XML fragment. XmlDocument doc = new XmlDocument(); XmlNode node = doc.CreateElement(this.GetType().Name); node.InnerXml = pszXMLFragment; if (node == null || node.FirstChild == null || node.FirstChild.ChildNodes.Count == 0 || node.FirstChild.ChildNodes[0].Name != targetsTag) break; this.TargetsToExecute = node.FirstChild.ChildNodes[0].InnerText; if (node.FirstChild.ChildNodes.Count case (uint)_PersistStorageType.PST_USER_FILE: < // We do not store anything in the user file. break; >> > // Forward the call to inner flavor(s) if (this.innerCfg != null && this.innerCfg is IPersistXMLFragment) return ((IPersistXMLFragment)this.innerCfg).Load(ref guidFlavor, storage, pszXMLFragment); return VSConstants.S_OK; >
Все примеры кода, приведенные в этом разделе, являются частями более крупного примера в примерах VSSDK.
См. также
Как правильно сохранить проект
Тупой вопрос: как сохранить проект и скомпилированный проект?
Я нажимаю на 'File/Save All' и сохранение происходит автоматически, как изменить путь сохранения.

Как целиком сохранить проект в бэкап
Всем привет. Использую студию 2010. Появилась необходимость сделать полную копию всего проекта со.
Как правильно открыть c# проект в expression blend 4
Как правильно открыть c# проект в expression blend 4 что бы можно было его оформить(закрасить.
windows 7 + win32. Как правильно сохранить проект?
Как правильно сохранить проект? консольный, win32. Чтобы запускался на семерке. Не в компиляторе, а.
400 / 333 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
Извините, но экстрасенсы уволились из-за сильной рабочей нагрузки. Какой проект? Где сохранить? В чем сохранять? Для чего сохранить? На чем открывать будете?
Не за что!
Добавлено через 1 минуту
Если в студии, то левой клавишей мыши Файл/Сохранить как. . Выбираем место для сохранения и сохраняем.
Добавлено через 45 секунд
Без обид, но как бы Вы сами ответили на свой вопрос?
102 / 100 / 33
Регистрация: 24.04.2010
Сообщений: 286
Записей в блоге: 1
Главное чтоби версии vstudio на вашем и чужом компе били совместими.
В другом случае можут возникнуть некоторие проблеми, которие все равно можна решить
Настройки импорта и экспорта в Visual Studio

Точно настроив интегрированную среду разработки по своему вкусу, вы можете сохранить эти настройки на будущее. Для этого можно экспортировать настройки интегрированной среды в файл или даже передать ряду инсталляций системы Visual Studio 2013, чтобы во всех установленных системах были одинаковые настройки.
Для того чтобы экспортировать выбранную конфигурацию, выберите команду Tools --> Import and Export Settings, чтобы запустить мастер Import and Export Settings Wizard, как показано на рисунке ниже. На первом этапе работы этого мастера следует выбрать настройку Export, а также настройки, которые следует сохранить при выполнении процедуры экспорта.

Как показано на рисунке, можно экспортировать множество сгруппированных настроек. На этом снимке экрана видно, как раскрывается раздел Options, демонстрируя, что следует сохранить настройки Debugging и Projects, а также конфигурации Text Editor и Windows Forms Designer. Маленькие пиктограммы с восклицательным знаком свидетельствуют о том, что некоторые настройки не были предназначены для экспорта по умолчанию, поскольку они содержат информацию, которая может нарушить конфиденциальность информации. В этом разделе вы должны сделать свой выбор вручную, если действительно хотите, чтобы эта информация была сохранена в резервном файле. Выбрав настройки, которые хотите экспортировать, переходите к следующему этапу работы мастера, который может занять несколько минут, в зависимости от того, сколько настроек вы экспортируете.
Импортировать файл настроек очень легко. Для этого используется тот же самый мастер, но теперь на первом этапе вам следует выбрать команду Import. Вместо простой перезаписи текущей конфигурации мастер позволяет вам сначала сохранить резервную копию текущих настроек.
Затем можете выбрать существующий файл конфигурации из списка. Это тот же самый список файлов, из которого вы выбираете настройки при первом запуске системы Visual Studio 2013. Кроме того, можете просмотреть файлы настроек, созданные вами заранее. Выбрав файл настроек, можете импортировать только разделы конфигурации или всю ее целиком.
Мастер по умолчанию исключает несколько разделов, таких как External Tools или Command Aliases, чтобы вы не могли непреднамеренно уничтожить пользовательские настройки. Убедитесь, что вы выбрали эти разделы, если хотите восстановить все настройки.
Если вы просто хотите восстановить одну из конфигураций системы Visual Studio 2013, заданных по умолчанию, выполните команду Reset All Settings на первом этапе работы мастера и не выполняйте весь процесс импорта.
Visual Studio предоставляет возможность поделиться настройками с членами команды, с которой вы работаете. Это полезно в тех случаях, например, когда происходит редактирование одних и тех же файлов (используя Team Foundation Server). Каждый программист по своему оформляет код, использует символы табуляции и т.д. Когда разные члены команды работают с одним файлом, простое редактирование файла может привести к незначительным изменениям, не влияющим на работу приложения (лишние пробелы, переносы строк и т.д.) Однако, когда эти файлы добавляются в репозиторий исходного кода (TFS, Git, . ), эти изменения могут вызвать проблемы.
Если вы работаете с командой разработчиков, создание единого файла настроек является хорошей идеей. В разделе настроек Environment --> Import and Export Settings вы можете установить флажок Use Team Settings File:

Когда этот флажок установлен, должен быть указан путь, где будет храниться общий файл настроек.
Настройки синхронизации
Одним из нововведений среды Visual Studio 2013 является ее синхронизация с облачными службами. Вы можете войти в Visual Studio с учетной записью Microsoft и настройки Visual Studio будут синхронизированы на всех ваших компьютерах. Этот процесс синхронизации не распространяется на все настройки Visual Studio. При отсутствии дополнительных настроек с вашей стороны, синхронизация затрагивает следующие параметры:
- Настройки разработчика (это те параметры, которые были указаны при установке Visual Studio и первом ее запуске).
- Настройка цветовой темы (Environment --> General)
- Настройки шрифтов и цвета (Environment --> Fonts and Colors)
- Горячие клавиши (Environment --> Keyboard )
- Параметры запуска (Environment --> Startup)
- Настройки текстового редактора (Text Editor)
- Все пользовательские псевдонимы команд
Можно изменить настройки синхронизации или вообще полностью выключить. Для этого, в диалоговом окне Options выберете узел Environment --> Synchronized Settings, где можно увидеть уровень детализации, доступный для вас. Чтобы полностью отключить синхронизацию, убедитесь, что флажок включения синхронизации не установлен для всех категорий параметров.

Итак, ранее были изложены лишь основные сведения о выборе полезных настроек, позволяющих вам настроить интерфейс системы Visual Studio по своему вкусу; кроме этого вам доступно много других возможностей. Эти многочисленные настройки позволяют настраивать редактирование кода, добавлять элементы управления в вашу форму и даже выбирать методы при отладке кода. Настройки, доступные в диалоговом окне Options, также позволяют вам управлять процессом создания приложений и даже задавать собственные комбинации клавиш для выполнения команд. Позже мы будем еще не раз обращаться к диалоговому окну Options для настройки процессов компиляции, отладки и написания макросов.
Разработка серверного кода
В приложении Creatio существует возможность полноценной отладки созданного пользователем серверного кода с помощью интегрированных функций отладки среды разработки Visual Studio. Отладчик Visual Studio позволяет приостанавливать выполнение методов, проверять значения переменных, изменять их и получать полное представление о том, что делает код.
Общая последовательность действий
- Выполнить предварительные настройки приложения Creatio и Visual Studio.
- Создать, установить или обновить пользовательский пакет из репозитория SVN.
- Создать схему Исходный код , в которой будет выполняться разработка.
- Выполнить разработку исходного кода в Visual Studio, создав, например, класс конфигурационного Web-сервиса.
- Сохранить, скомпилировать и выполнить отладку созданного исходного кода.
Важно. После успешной компиляции итоговая сборка Terrasoft.Configuration.dll будет помещена в каталог Bin , при этом IIS автоматически использует ее в приложении Creatio.
Разработка серверного кода в проекте Terrasoft.Configuration.sln
1. Выполнить предварительные настройки
Настроить IDE для разработки в файловой системе.
На заметку. Для разработки в файловой системе можно использовать Microsoft Visual Studio редакций Community, Professional и Enterprise версии 2017 (c последними обновлениями) и выше.
2. Создать, получить или обновить пакет из репозитория SVN
Создать пользовательский пакет с использованием и без использования SVN. Установить и, при необходимости, обновить пакет.
На заметку. При разработке в файловой системе вместо встроенных возможностей Creatio удобнее использовать клиентские приложения для работы с хранилищами систем контроля версий, например, Tortoise SVN или Git.
3. Создать схему Исходный код
4. Выполнить разработку решения в Visual Studio
Прежде чем выполнять разработку решения в Visual Studio, необходимо выгрузить существующие схемы из базы данных в файловую систему. Для этого нужно выполнить действие Выгрузить пакеты в файловую систему ( Download packages to file system ).

Так, например, если в пакете sdkPackageInFileSystem была создана схема Исходный код с именем UsrGreetingService , то в файловой системе в каталоге Pkg\sdkPackageInFileSystem\Schemas\ появится файл исходного кода схемы UsrGreetingService.cs . При этом в каталог Autogenerated\Src будет помещен сгенерированный системой файл схемы UsrGreetingServiceSchema.sdkPackageInFileSystem_Entity.cs .

На заметку. Чтобы добавить схему в SVN, необходимо добавить весь каталог UsrGreetingService , включая JSON-файлы.
Для выполнения разработки необходимо в Visual Studio открыть решение Terrasoft.Configuration.sln. Затем в проводнике решения Visual Studio включить отображение всех типов файлов (1), открыть файл UsrGreetingService.cs (2) и добавить нужный исходный код (3).

Пример исходного кода, который нужно добавить в содержимое файла UsrServiceGreeting.cs для реализации пользовательского web-сервиса.
UsrServiceGreeting.cs
namespace Terrasoft.Configuration < using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Web; // Класс, реализующий конфигурационный сервис. [ServiceContract] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] public class UsrGreetingService : System.Web.SessionState.IReadOnlySessionState < // Операция сервиса. [OperationContract] [WebInvoke(Method = "GET", UriTemplate = "Hello")] public string TestHello() < return "Hello!"; > > >
5. Сохранить, скомпилировать и отладить созданный исходный код
После того как исходный код был изменен, прежде чем выполнить его компиляцию и отладку, необходимо его сохранить (4). Обычно это выполняет Visual Studio автоматически, но поскольку компилятор Visual Studio не используется, эту операцию нужно выполнять разработчику самостоятельно.
После сохранения измененный исходный код необходимо скомпилировать командой Build Workspace или Rebuild Workspace . В случае успешной компиляции сервис становится доступным.
Адрес сервиса
http://[URL приложения/0/rest/UsrGreetingService/Hello

Для того чтобы начать отладку, необходимо присоединиться к процессу сервера IIS, в котором запущено приложение. Для этого нужно выполнить команду меню Debug —> Attach to process .

В открывшемся окне в списке процессов нужно выбрать рабочий процесс IIS, в котором запущен пул приложения Creatio.
На заметку. Название рабочего процесса может различаться в зависимости от конфигурации используемого сервера IIS. Так, для полнофункционального IIS процесс называется w3wp.exe , для IIS Express — iisexpress.exe .
По умолчанию рабочий процесс IIS запущен под учетной записью, имя которой совпадает с именем пула приложения. Для того чтобы отобразить процессы всех пользователей, а не только текущего, необходимо установить признак Show processes from all users .
После присоединения к рабочему процессу IIS необходимо выполнить повторную компиляцию. Далее можно приступить к процессу отладки средствами отладчика Visual Studio. Например, можно установить точки останова, просматривать значения переменных, стек вызовов и т.д. С возможностями отладчика Visual Studio можно ознакомиться здесь.
Например, после установки точки останова на строке возврата из метода TestHello() , повторной компиляции приложения и выполнения запроса к сервису отладчик остановит выполнение программы на точке останова.

Важно. Возможность отладки зависит от правильности настройки Visual Studio.
