windows sdk addon что это

Windows software development kit sdk

Microsoft Windows Software Development Kit
ТипAPI
РазработчикMicrosoft Corporation
Операционная системаWindows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8
Последняя версия7.1 (May 21, 2010)
ЛицензияРазличные
СайтПакет Windows SDK в MSDN

Разница между этими тремя SDK заключается в их области специализации:

Platform SDK также содержит ресурсы (инструменты, документацию, образцы и т.д.) и компиляторы, необходимые для разработки 64-битных приложений на платформах x86, x64 и Itanium (IA-64).

Получение пакета SDK [ править | править код ]

SDK для Windows доступны бесплатно на Microsoft Download Center Platform SDK февраля 2003 издание

Microsoft Windows SDK

Contents

Features [ edit ]

Windows SDKs are available for free; they were once available on Microsoft Download Center but were moved to MSDN in 2012.

A developer might want to use an older SDK for a particular reason. For example, the Windows Server 2003 Platform SDK released in February 2003 was the last SDK to prov >[6]

Microsoft SDK version release history [7]

Last Platform SDK to fully support Visual C++ 5.0

Last Platform SDK to officially develop for Windows 95. (Does not officially install on Windows 95)

NameVersion numberBuild numberRelease dateDownloadNotes
Microsoft Windows Software Development Kit3.1???
Microsoft Win32 Software Development Kit3.1???
Microsoft Win32 Software Development Kit3.51???
Included in Visual Studio 6?
Microsoft Platform SDK April 1999?1999-04??MSDN subscription CD-ROM disc.
Microsoft Platform SDK February 2001?2001-02??MSDN subscription CD-ROM disc.
Microsoft Platform SDK August 2001windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что это

Приветствую друзья! В Windows могут появиться программы, которые вы не устанавливали. Многих пользователей этим не удивишь, привыкли уже к такому беспределу)) Но откуда они берутся? Некоторые появились при установке других прог, некоторые установила сама Windows при обновлении, а третьи могут вообще быть вирусами или потенциально опасными, шпионскими там.. Но сегодня у нас пойдет речь про нормальную прогу для программистов))

Разбираемся

Windows SDK — пакет для создания приложений. В него входят новейшие заголовки, библиотеки, метаданные, и другие компоненты. Слово AddOn означает как дополнение, то есть дополнительный компонент.

Версия для Windows 10 позволяет создавать как классические, так и универсальные приложения.

Как я понимаю, классические приложения — это обычные привычные нам проги, которые можно скачать из интернета и установить. А вот универсальные — это уже метро-приложения, те самые модные плиточные проги, которые есть в меню пуск Windows 10, да и в Windows 8 они вроде тоже есть. Их еще можно скачать с магазина приложений (Microsoft Store).

Как пакет мог попасть на ПК:

Что интересно — разработка приложений UWP для десятки версии LTSB не поддерживается:

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоИнфа с офф сайта)

Версия для десятки, а точнее для билда 1809, содержит новые API-интерфейсы и обновленные средства для разработки приложений.

Вот картинка, видим что прога установлена среди остальных, но что главное — размер ее небольшой, всего 152 КБ:

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоРазмер просто крохотный — поэтому можно оставить ее и не думать об удалении))

Тоже самое, но здесь прогу видим в списке окна Программы и компоненты:

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоДля вызова такого окна есть трюк — зажимаете Win + R, пишите команду appwiz.cpl, нажимаете ОК. В итоге откроется окно со списком установленного софта.

Установочное окно, где видим, то данная прога существовала еще во времена Windows XP:

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоSoftware Development Kit — набор средств разработки для программистов.

А вот и студия Visual Studio, где видим, что она при установке также может поставить Windows SDK:

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоВывод — если вы программист — данный компонент у вас спокойно может быть.

Можно ли удалить данную программу?

Места на диске она занимает оч мало, но при этом является прогой от Майкрософт (значит точно безопасна). В процессах не висит, в автозагрузке ее тоже не должно быть.

Тем не менее, если вы хотите удалить прогу — лучше сначала сделать точку восстановления:

    Зажимаете Win + R, пишите команду:

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоКоманда откроет окошко Свойства системы.

Нажимаете ОК.
У вас откроется окно Свойства системы, здесь активируете вкладку Защита системы, где выбираете Системный диск и нажимаете Создать:
windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что этоУ меня кнопка неактивна, просто восстановление отключено. Но у вас — должна быть активна, в противном случае нажмите Настроить и включите восстановление.

Точку советую называть на понятном языке, например до удаления Windows SDK AddOn.

Лично я советую удалять только при наличии точки восстановления! Это важно!

Источник

Доступные пакеты SDK

Доступны следующие пакеты SDK:

Можно также создать собственный пакет SDK и распространять его с помощью NuGet.

Файлы проекта

Чтобы указать пакет SDK, который содержится в NuGet, добавьте версию в конец имени или укажите имя и версию в файле global.json.

Другим способом указания пакета SDK является элемент Sdk верхнего уровня.

На компьютере Windows файлы Sdk.props и Sdk.targets можно найти в папке %ProgramFiles%\dotnet\sdk\[версия]\Sdks\Microsoft.NET.Sdk\Sdk.

Предварительная обработка файла проекта

Включения и исключения по умолчанию

ЭлементСтандартная маска включенияСтандартная маска исключенияСтандартная маска удаления
Compile**/*.cs (или другие расширения языка)**/*.user; **/*.*proj; **/*.sln; **/*.vsssccН/Д
EmbeddedResource**/*.resx**/*.user; **/*.*proj; **/*.sln; **/*.vsssccН/Д
None**/***/*.user; **/*.*proj; **/*.sln; **/*.vssscc**/*.cs; **/*.resx

Ошибки сборки

Если вы явным образом определите любой из этих элементов в файле проекта, скорее всего, произойдет ошибка сборки NETSDK1022 с примерно таким сообщением:

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

Если вы хотите указать файлы, которые нужно публиковать вместе с приложением, для этого можно по-прежнему использовать привычные механизмы MSBuild (например, элемент Content ).

Неявные директивы using

Неявные директивы global using добавляются для проектов, которые используют один из следующих пакетов SDK:

Директива global using добавляется для каждого пространства имен в наборе стандартных пространств имен, в зависимости от конкретного пакета SDK для проекта. Эти пространства имен по умолчанию показаны в следующей таблице.

SDKПространства имен по умолчанию
Microsoft.NET.SdkSystem
System.Collections.Generic
System.IO
System.Linq
System.Net.Http
System.Threading
System.Threading.Tasks
Microsoft.NET.Sdk.WebSystem.Net.Http.Json
Microsoft.AspNetCore.Builder
Microsoft.AspNetCore.Hosting
Microsoft.AspNetCore.Http
Microsoft.AspNetCore.Routing
Microsoft.Extensions.Configuration
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.Hosting
Microsoft.Extensions.Logging
Microsoft.NET.Sdk.WorkerMicrosoft.Extensions.Configuration
Microsoft.Extensions.DependencyInjection
Microsoft.Extensions.Hosting
Microsoft.Extensions.Logging
Microsoft.NET.Sdk.WindowsDesktop (Windows Forms)Пространства имен Microsoft.NET.Sdk
System.Drawing
System.Windows.Forms
Microsoft.NET.Sdk.WindowsDesktop (WPF)Пространства имен Microsoft.NET.Sdk
System.IO удалено
System.Net.Http удалено

Неявные ссылки на пакет

При необходимости можно отключить неявные ссылки на пакеты с помощью свойства DisableImplicitFrameworkReferences и добавить явные ссылки только на необходимые платформы или пакеты.

События сборки

Настройка сборки

Пользовательские целевые объекты

Чтобы добавить пользовательские целевые объекты или свойства сборки, нужно поместить файлы в форме

.props (например, Contoso.Utility.UsefulStuff.targets ) в папку build проекта.

Источник

установка средств разработки приложений для Windows 10 и Windows 11

чтобы разрабатывать приложения для Windows 11 и Windows 10, необходимо настроить на компьютере разработчика необходимые средства разработки.

1. Установка Visual Studio

используйте следующие ссылки для установки Visual Studio 2022 версии 17,0 (рекомендуется) или Visual Studio 2019. можно выбрать бесплатную Visual Studio Community выпуска, Visual Studio Professional или Visual Studio Enterprise.

список минимальных системных требований для Visual Studio см. в статье требования к системе для разработки приложений Windows.

Требуемые рабочие нагрузки и компоненты

при установке Visual Studio 2022 или 2019 выберите следующие рабочие нагрузки и компоненты.

На вкладке рабочие нагрузки диалогового окна Установка выберите:

2. установка расширения пакета SDK для приложений Windows для Visual Studio (VSIX)

пакет SDK для приложений Windows содержит шаблоны проектов и элементов для создания и разработки приложений винуи 3. эти шаблоны проектов доступны в виде расширений Visual Studio (VSIX) для Visual Studio 2022/2019.

список минимальных системных требований для использования пакета SDK для приложений Windows см. в статье требования к системе для Windows разработки приложений.

Варианты установки

Вы можете скачать и установить последнее расширение VSIX для C# или C++ непосредственно по ссылкам ниже.

вы можете установить последний стабильный выпуск VSIX из Visual Studio: щелкните расширения > управление расширениями, найдите пакет SDK для Windows приложений и установите последнюю версию расширения C# или C++ в зависимости от языка, который вы хотите использовать.

кроме того, вы можете скачать и установить расширение непосредственно из Visual Studio Marketplace.

Дальнейшие действия

на следующем шаге будет создано первое приложение винуи 3, которое использует пакет SDK для приложений Windows.

Источник

Windows SDK

The Windows SDK (10.0.22000) for Windows 11 provides the latest headers, libraries, metadata, and tools for building Windows applications. Use this SDK to build Universal Windows Platform (UWP) and Win32 applications for Windows 11 and previous Windows releases.

Windows 10, version 21H2 is a scoped set of features for select performance improvements and quality enhancements. Developers should be aware of this release, but no action is necessary at this time.

A new Windows SDK will not be issued to accompany this version of Windows because this release doesn’t introduce new APIs. That means there’s no need to modify your project files or target a new version of Windows, and you should continue to use Windows SDK (10.0.22000) for Windows 11.

The Windows App SDK provides a unified set of APIs and tools that are decoupled from the OS and released to developers via NuGet packages. These APIs and tools can be used in a consistent way by any desktop app on Windows 11 and downlevel to Windows 10, version 1809.

Getting started

You can get the Windows SDK in two ways: install it from this page by selecting the download link or by selecting “Windows 11 SDK (10.0.22000)” in the optional components of the Visual Studio 2019 Installer.

Before you install this SDK:

System requirements

The Windows SDK has the following minimum system requirements:

Supported operating systems

(Not all tools are supported on earlier operating systems)

Hardware requirements

Additional SDK requirements

Installation on Windows 8.1 and earlier operating systems requires KB2999226. To install through Windows Update, make sure you install the latest recommended updates and patches from Microsoft Update before you install the Windows SDK.

What’s new

The Windows SDK for Windows 11 lets you update your apps for the latest version of the Windows OS. Learn more about the new features in Windows 11.

To see the new APIs introduced with Windows 11, see New APIs in Windows 11 build 22000.

Rebuilt the binaries of the Windows 11 on ARM operating system itself with ARM64EC so that any system code loaded by x64 apps runs with native speed. Take advantage of ARM64EC to incrementally transition your app to running with native speed on ARM, even if you have dependencies or plugins that don’t support ARM yet. Read announcement.

Samples

Windows app samples are now available through GitHub. You can browse the code on GitHub, clone a personal copy of the repository from Git, or download a zipped archive of all the samples. We welcome feedback, so feel free to open an issue within the repository if you have a problem or question. These samples are designed to run on desktop, mobile, and future devices that support the Universal Windows Platform (UWP).

Previous SDK versions

Previously released SDKs and emulators, including update details, can be found on the archive page.

API Light Up

When you use new APIs, consider writing your app to be adaptive so that it runs correctly on the widest array of Windows devices. An adaptive app «lights up» with new features wherever the devices and Windows version supports them, but otherwise offers only the functionality available on the detected platform version. For implementation details, see the Version adaptive code article.

Release notes and known issues

Windows 10 SDK, Version 2104 Expand notes

#ifdef __clang__
#pragma clang diagnostic ignored «-Wnonportable-system-include-path»
#endif

Windows 10 SDK, Version 2004 servicing update (released 12/16/2020) Expand notes

Provide feedback

For known issues, see the winapi-sdk Q&A.

For new developer feature requests, submit through the Feedback Hub app under the category “Developer Platform/API.”

More resources

Downloads and tools

Get the latest editions of Visual Studio and Windows 10 development tools.

SDK archive

Find previous releases of the Window SDK and other tools.

Windows blog

Stay in touch with the latest SDK flights by subscribing to our blog.

Windows lifecycle fact sheet

Find the key dates for Windows release updates and end of support.

Источник

Программирование с использованием пакетов SDK расширений

чтобы понять, как Windows 10 позволяет приложению универсальная платформа Windows (UWP) наиболее эффективно ориентироваться на различные классы устройств, в этом разделе объясняются следующие понятия.

Мы также покажем, как использовать их в программировании.

Семейства устройств и семейство устройств целевого приложения

Семейство устройств определяет API-интерфейсы, характеристики системы и поведения, ожидаемые на устройствах определенного класса.

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что это

Семейство устройств является основой операционной системы (ОС). Например, ПК и планшеты работают под настольным выпуском операционной системы и основаны на семействе настольных устройств. Устройства IoT используют выпуск операционной системы IoT, основанный на семействе устройств IoT.

Каждое дочернее устройство добавляет собственные API к интерфейсам API, которые он наследует от универсального семейства устройств. Полученное объединение интерфейсов API в дочернем семействе устройств обязательно должно присутствовать в ОС, основанной на этом семействе устройств, и, следовательно, на каждом устройстве под управлением этой операционной системы.

Решение о том, какое семейство устройств (или семейства) будет нацелено на ваше приложение. Этот выбор влияет на важные аспекты вашего приложения. Он определяет

В связи с этим мы имеем в виду, что вы можете вызывать эти API-интерфейсы, не требуя от них проверки на наличие на устройстве узла. Целевое семейство устройств обеспечивает гарантию (разные гарантии для различных семейств устройств).

Настройка семейства целевых устройств

по умолчанию приложение UWP предназначено для универсального семейства устройств (то есть Microsoft Visual Studio указывает Windows.Universal для TargetDeviceFamily). это означает, что приложение можно установить на всех Windows 10 устройствах, и вы можете полагаться на большой основной набор api-интерфейсов, имеющихся на основном устройстве. Такое приложение должно иметь очень адаптивный пользовательский интерфейс и широкие возможности ввода, так как оно может работать на самых разных устройствах. См. раздел Предварительный просмотр пользовательского интерфейса на различных размерах экрана далее в этом разделе.

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

Настройка целевой версии семейства устройств

api-интерфейсы добавляются в Windows с течением времени, поэтому еще одним измерением выбора семейства устройств является выбор версии (или версий) для целевого объекта. некоторые типы проектов в Visual Studio имеют страницу свойств, на которой можно настроить версии целевой платформы. Но для всех типов проектов можно настроить целевую версию целевой платформы прямо в файле проекта.

Ниже приведен пример, показывающий соответствующие свойства в файле проекта.

Во время сборки эти значения (вместе со значением TargetDeviceFamily@Name из Package.appxmanifest ) копируются в AppxManifest.xml файл, созданный в выходной папке проекта. Пример приведен ниже.

Maxversiontested укажите установленную указывает максимальную версию семейства устройств, для которой приложение предназначено для тестирования. И MinVersion Указывает минимальную версию семейства устройств, для которой предназначено приложение. Дополнительные сведения см. в разделе TargetDeviceFamily.

Пакеты SDK расширений и способы их ссылки

если в проекте Visual Studio вы измените целевой объект с универсального семейства устройств на другое семейство устройств, необходимо добавить ссылку на пакет SDK для расширений, соответствующий этому семейству устройств. Это делает интерфейсы API в этом семействе устройств доступными для вашего проекта.

если, например, вы нацелены на семейство устройств IoT, то (выбрав узел проекта, выбранный в обозреватель решений) нажмите кнопку Project > добавить ссылку. > Универсальное Windows > расширения и выберите соответствующую версию расширений Windows IoT для UWP. Например, если в версии 10.0.17134.0 появился новейший API IoT, который вы хотите вызвать, выберите эту версию.

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что это

И вот как эта ссылка будет выглядеть в файле проекта.

Имя и номер версии соответствуют папкам в месте установки SDK. Например, приведенная выше информация соответствует папке с именем

\Program Files (x86)\Windows Kits\10\Extension SDKs\WindowsIoT\10.0.17134.0

к другим пакетам sdk расширений относятся Windows расширения рабочего стола для uwp, Windows мобильные расширения для uwp и Windows командных расширений для uwp.

Если оставить приложение целевым для универсального семейства устройств, вы по-прежнему можете добавить ссылку на один или несколько пакетов SDK расширений. Ссылка на любые пакеты SDK расширений, содержащие дополнительные API, которые вы хотите вызвать. Помните, что вы нацелены на универсальное семейство устройств, так что это единственные интерфейсы API, которые можно использовать в настоящее время. Для API-интерфейсов в пакетах SDK расширений, на которые вы ссылались, необходимо проверить их присутствие на главном устройстве во время выполнения, прежде чем вызывать их (Дополнительные сведения см. в разделе о написании кода далее в этом разделе). Конечно, вам не нужно выполнять этот тест для API-интерфейсов в универсальном семействе устройств. Это самый лучший из двух-мировых сценариев, упомянутых в предыдущем разделе.

С помощью пакета SDK для расширений можно ориентироваться на уникальные API определенного семейства устройств и тем самым получать доступ к их специальным возможностям. Это можно сделать, если вы нацелены на соответствующее семейство устройств.

Контракты API и способы их поиска

Интерфейсы API в семействе устройств делятся на группы, называемые контрактами API. При освобождении новой версии семейства устройств эта новая версия, по сути, просто представляет коллекцию новых версий всех контрактов API, относящихся к этому семейству устройств.

Например, контракт API с именем Windows.Foundation.UniversalApiContract был в версии 6,0, когда он поставлялся с версией 10.0.17134.0 универсального семейства устройств. Но этот же контракт был в версии 10,0, когда он поставлялся с версией 10.0.19041.0 этого семейства устройств.

Поиск контракта API для API WinRT

давайте посмотрим, как можно найти имя контракта api и номер версии для любого заданного среда выполнения Windows API. В разделе « написание кода » далее в этом разделе вы узнаете, почему и как можно использовать эти сведения.

Выбор семейства устройств для назначения

Ниже приведены некоторые рекомендации, которые помогут решить, какое семейство устройств следует назначить. Дополнительные сведения см. в разделе TargetDeviceFamily.

Максимально увеличить уровень доступности приложения

Чтобы достигнуть максимального диапазона типов устройств в приложении, и, следовательно, чтобы он выполнялся на максимальном числе устройств, приложение должно быть предназначено для универсального семейства устройств. В частности, как мы видели, вы будете ориентироваться на диапазон версий универсальных устройств.

Ограничьте приложение одним из типов устройств

Возможно, вам не нужно, чтобы приложение выполнялось в различных конструктивных параметрах устройства. возможно, он специализирован для настольного ПК или для консоли Xbox. В этом случае можно выбрать целевое устройство для одного из семейств дочерних устройств.

Ограничьте приложение до подмножества всех возможных устройств

Вместо того чтобы нацеливание на семейство универсальных устройств или выбрать одно из дочерних семейств устройств, можно выбрать два (или более) семейства дочерних устройств. Нацеливание на Настольный компьютер и мобильные устройства могут иметь смысл для вашего приложения. Или Desktop и Team. Или настольный компьютер, мобильное устройство, команда и т. д.

Исключить поддержку для определенной версии семейства устройств

Написание кода

Большая часть кода будет универсальной в том смысле, что она будет выполняться одинаково на каждом устройстве. Но для кода, адаптированного к конкретному семейству устройств, можно использовать Адаптивный код. Рассмотрим эти различные случаи.

Вызов API, реализуемого семейством целевых устройств

При необходимости вызова API в приложении UWP необходимо определить, реализован ли API в семействе устройств, предназначенном для приложения. Visual Studio IntelliSense показывает интерфейсы API в универсальном семействе устройств и интерфейсы API, доступные для любых пакетов SDK расширений, на которые вы ссылались.

Вызов API, который не реализован семейством целевых устройств

В некоторых случаях требуется вызвать API в пакете SDK расширений, на который вы ссылались, но этот API не входит в семейство устройств, которое вы намерены использовать.

Например, вы можете ориентироваться на универсальное семейство устройств, но есть API для настольных систем, который вы хотите вызывать каждый раз, когда приложение выполняется на настольном устройстве.

Или ваше приложение может поддерживать ранние версии семейства устройств, но есть API, который вы хотите вызвать, который доступен только в самых последних версиях одного семейства устройств.

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

Запись адаптивного кода с помощью апиинформатион

Использование адаптивного кода для выполнения условного вызова API состоит из двух этапов. Первый шаг — сделать API доступным для вашего проекта. Для этого добавьте ссылку на пакет SDK для расширений, представляющий семейство устройств, которое владеет API.

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

Как известно, набор API-интерфейсов в семействе устройств дополнительно разбивается на подразделы, известные как контракты API. Вы можете использовать метод ApiInformation.IsApiContractPresent, чтобы проверить наличие контракта API. Это эффективный способ выполнения одного условия, чтобы узнать о присутствии или в ином случае большого количества API-интерфейсов, которые принадлежат к одной версии контракта API.

Сведения о том, как определить контракт API, в котором впервые появились API-интерфейсы, см. в разделе Поиск контракта API для API WinRT ранее в этом разделе.

Просмотр пользовательского интерфейса на различных размерах экрана

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

windows sdk addon что это. Смотреть фото windows sdk addon что это. Смотреть картинку windows sdk addon что это. Картинка про windows sdk addon что это. Фото windows sdk addon что это

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

Источник

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

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