Создание пакетов для windows

Содержание
  1. Создание пакетов универсальной платформы Windows Create UWP packages
  2. Предварительные требования Prerequisites
  3. Создание компонента среды выполнения Windows для UWP Create a UWP Windows Runtime component
  4. Создание и изменение файла NUSPEC Create and update the .nuspec file
  5. Добавление метаданных Windows в пакет Adding Windows metadata to the package
  6. Добавление содержимого XAML Adding XAML content
  7. Добавление библиотек, реализованных в машинном коде Adding the native implementation libraries
  8. Добавление файла TARGETS Adding .targets
  9. Итоговый файл NUSPEC Final .nuspec
  10. Упаковка компонента Package the component
  11. Настройка классического приложения для упаковки с помощью MSIX в Visual Studio Set up your desktop application for MSIX packaging in Visual Studio
  12. Требуемая версия и рабочая нагрузка Visual Studio Required Visual Studio version and workload
  13. Подготовьте свое приложение Prepare your application
  14. Установите Проект упаковки приложения Windows в свое решение. Setup the Windows Application Packaging Project in your solution
  15. Дальнейшие действия Next steps
  16. Дополнительные ресурсы Additional resources

Создание пакетов универсальной платформы Windows Create UWP packages

Универсальная платформа Windows (UWP) предоставляет единую платформу приложений для всех устройств с операционной системой Windows 10. The Universal Windows Platform (UWP) provides a common app platform for every device that runs Windows 10. В этой модели приложения UWP могут вызывать как интерфейсы API WinRT, общие для всех устройств, так и интерфейсы API (включая Win32 и .NET), относящиеся только к семейству устройств, на которых работает приложение. Within this model, UWP apps can call both the WinRT APIs that are common to all devices, and also APIs (including Win32 and .NET) that are specific to the device family on which the app is running.

В этом пошаговом руководстве вы создадите пакет NuGet с собственным компонентом UWP (включая элемент управления XAML), который можно использовать как в управляемых, так и в собственных проектах. In this walkthrough you create a NuGet package with a native UWP component (including a XAML control) that can be used in both Managed and Native projects.

Предварительные требования Prerequisites

Visual Studio 2017 или Visual Studio 2015. Visual Studio 2017 or Visual Studio 2015. Установите бесплатный выпуск Community 2017 с сайта visualstudio.com. Вы также можете использовать выпуски Professional и Enterprise. Install the 2017 Community edition for free from visualstudio.com; you can use the Professional and Enterprise editions as well.

Интерфейс командной строки NuGet. NuGet CLI. Скачайте последнюю версию nuget.exe на странице nuget.org/downloads, сохранив ее в любом месте на ваш выбор (скачивается сразу файл .exe ). Download the latest version of nuget.exe from nuget.org/downloads, saving it to a location of your choice (the download is the .exe directly). Затем добавьте это расположение в переменную среды PATH, если это еще не сделано. Then add that location to your PATH environment variable if it isn’t already.

Создание компонента среды выполнения Windows для UWP Create a UWP Windows Runtime component

В Visual Studio последовательно выберите Файл > Создать > Проект, разверните узел Visual C++ > Windows > Универсальные, выберите шаблон Компонент среды выполнения Windows (универсальные приложения для Windows) , измените имя на ImageEnhancer и нажмите кнопку «ОК». In Visual Studio, choose File > New > Project, expand the Visual C++ > Windows > Universal node, select the Windows Runtime Component (Universal Windows) template, change the name to ImageEnhancer, and click OK. При появлении запроса оставьте значения свойств «Конечная версия» и «Минимальная версия» по умолчанию. Accept the default values for Target Version and Minimum Version when prompted.

В обозревателе решений щелкните проект правой кнопкой мыши, выберите пункты Добавить > Новый элемент, щелкните узел Visual C++ > XAML, выберите элемент Элемент управления-шаблон, измените имя на AwesomeImageControl.cpp и нажмите кнопку Добавить. Right click the project in Solution Explorer, select Add > New Item, click the Visual C++ > XAML node, select Templated Control, change the name to AwesomeImageControl.cpp, and click Add:

В обозревателе решений щелкните проект правой кнопкой мыши и выберите пункт Свойства. Right-click the project in Solution Explorer and select Properties. На странице «Свойства» разверните узел Свойства конфигурации > C/C++ и щелкните элемент Выходные файлы. In the Properties page, expand Configuration Properties > C/C++ and click Output Files. В области справа измените значение свойства Создавать файлы XML-документации на «Да». In the pane on the right, change the value for Generate XML Documentation Files to Yes:

Теперь щелкните решение правой кнопкой мыши, выберите пункт Пакетная сборка и в открывшемся диалоговом окне установите три флажка в строках, соответствующих конфигурации отладки, как показано ниже. Right click the solution now, select Batch Build, check the three Debug boxes in the dialog as shown below. Благодаря этому при сборке создается полный набор артефактов для каждой из целевых систем, поддерживаемых Windows. This makes sure that when you do a build, you generate a full set of artifacts for each of the target systems that Windows supports.

Читайте также:  Google chrome для линукса

В диалоговом окне «Пакетная сборка» щелкните Сборка, чтобы проверить проект и создать выходные файлы, которые потребуются для пакета NuGet. In the Batch Build dialog, and click Build to verify the project and create the output files that you need for the NuGet package.

В этом пошаговом руководстве для пакета будут использоваться артефакты отладки. In this walkthrough you use the Debug artifacts for the package. Если пакет не является отладочным, в диалоговом окне «Пакетная сборка» установите вместо этого флажки в строках, соответствующих конфигурации выпуска, и при выполнении последующих действий обращайтесь к полученным папкам выпуска. For non-debug package, check the Release options in the Batch Build dialog instead, and refer to the resulting Release folders in the steps that follow.

Создание и изменение файла NUSPEC Create and update the .nuspec file

Чтобы создать исходный файл .nuspec , выполните три указанных ниже действия. To create the initial .nuspec file, do the three steps below. В следующих разделах приводятся указания по другим необходимым изменениям. The sections that follow then guide you through other necessary updates.

Откройте командную строку и перейдите к папке, содержащей файл ImageEnhancer.vcxproj (это вложенная папка в папке с файлом решения). Open a command prompt and navigate to the folder containing ImageEnhancer.vcxproj (this will be a subfolder below where the solution file is).

Выполните команду NuGet spec , чтобы создать файл ImageEnhancer.nuspec (его имя будет соответствовать имени файла .vcxproj ): Run the NuGet spec command to generate ImageEnhancer.nuspec (the name of the file is taken from the name of the .vcxproj file):

Откройте файл ImageEnhancer.nuspec в редакторе и измените его содержимое так, как показано ниже, заменив YOUR_NAME на соответствующее значение. Open ImageEnhancer.nuspec in an editor and update it to match the following, replacing YOUR_NAME with an appropriate value. Значение должно быть уникальным в пределах nuget.org (см. соглашения об именовании, описанные в разделе Создание пакета). The value, specifically, must be unique across nuget.org (see the naming conventions described in Creating a package). Кроме того, обратите внимание на то, что необходимо изменить теги author и description, иначе на этапе упаковки произойдет ошибка. Also note that you must also update the author and description tags or you get an error during the packing step.

Если пакет будет общедоступным, обратите особое внимание на элемент , так как эти теги помогают найти ваш пакет и понять его назначение. For packages built for public consumption, pay special attention to the element, as these tags help others find your package and understand what it does.

Добавление метаданных Windows в пакет Adding Windows metadata to the package

Компоненту среды выполнения Windows требуются метаданные, которые описывают все его общедоступные типы, что делает возможным использование компонента другими приложениями и библиотеками. A Windows Runtime Component requires metadata that describes all of its publicly available types, which makes it possible for other apps and libraries to consume the component. Эти метаданные содержатся в файле WINMD, который создается при компиляции проекта и должен быть включен в пакет NuGet. This metadata is contained in a .winmd file, which is created when you compile the project and must be included in your NuGet package. В это же время создается XML-файл с данными IntelliSense, который также необходимо включить в пакет. An XML file with IntelliSense data is also built at the same time, and should be included as well.

Добавьте следующий узел в файл .nuspec : Add the following node to the .nuspec file:

Добавление содержимого XAML Adding XAML content

Чтобы добавить элемент управления XAML вместе с компонентом, необходимо включить XAML-файл с шаблоном по умолчанию для элемента управления (который создается шаблоном проекта). To include a XAML control with your component, you need to add the XAML file that has the default template for the control (as generated by the project template). Он также указывается в разделе : This also goes in the section:

Добавление библиотек, реализованных в машинном коде Adding the native implementation libraries

В компоненте основная логика типа ImageEnhancer реализована в машинном коде, который содержится в различных сборках ImageEnhancer.dll , создаваемых для каждой целевой среды выполнения (ARM, x86 и x64). Within your component, the core logic of the ImageEnhancer type is in native code, which is contained in the various ImageEnhancer.dll assemblies that are generated for each target runtime (ARM, x86, and x64). Чтобы включить их в пакет, добавьте ссылки на них и на связанные с ними PRI-файлы ресурсов в раздел : To include these in the package, reference them in the section along with their associated .pri resource files:

Читайте также:  Что такое windows phone sdk

Добавление файла TARGETS Adding .targets

В проектах C++ и JavaScript, которые могут использовать ваш пакет NuGet, требуется файл TARGETS, в котором определяются необходимые файлы сборок и файлы WINMD. Next, C++ and JavaScript projects that might consume your NuGet package need a .targets file to identify the necessary assembly and winmd files. (В C# и Visual Basic это делается автоматически.) Чтобы создать этот файл, скопируйте приведенный ниже текст в файл ImageEnhancer.targets и сохраните его в той же папке, что и файл .nuspec . (C# and Visual Basic projects do this automatically.) Create this file by copying the text below into ImageEnhancer.targets and save it in the same folder as the .nuspec file. Примечание. Имя этого файла .targets должно совпадать с идентификатором пакета (например, элемент в файле .nupspec ). Note: This .targets file needs to be the same name as the package ID (e.g. the element in the .nupspec file):

Затем добавьте ссылку на файл ImageEnhancer.targets в файле .nuspec : Then refer to ImageEnhancer.targets in your .nuspec file:

Итоговый файл NUSPEC Final .nuspec

Итоговый файл .nuspec должен выглядеть следующим образом (YOUR_NAME, и в этом случае необходимо заменить на соответствующее значение): Your final .nuspec file should now look like the following, where again YOUR_NAME should be replaced with an appropriate value:

Упаковка компонента Package the component

Когда будет готов файл .nuspec со ссылками на все файлы, которые необходимо включить в пакет, можно выполнить команду pack : With the completed .nuspec referencing all the files you need to include in the package, you’re ready to run the pack command:

Будет создан ImageEnhancer.YOUR_NAME.1.0.0.nupkg . This generates ImageEnhancer.YOUR_NAME.1.0.0.nupkg . Если открыть файл в таком средстве, как обозреватель пакетов NuGet, и развернуть все узлы, отобразится следующее содержимое: Opening this file in a tool like the NuGet Package Explorer and expanding all the nodes, you see the following contents:

Файл .nupkg — это просто ZIP-файл с другим расширением. A .nupkg file is just a ZIP file with a different extension. Поэтому чтобы просмотреть содержимое пакета, можно просто изменить расширение .nupkg на .zip , но не забудьте восстановить расширение перед отправкой пакета на сайт nuget.org. You can also examine package contents, then, by changing .nupkg to .zip , but remember to restore the extension before uploading a package to nuget.org.

Чтобы предоставить доступ к пакету другим разработчикам, следуйте инструкциям в разделе Публикация пакета. To make your package available to other developers, follow the instructions on Publish a package.

Настройка классического приложения для упаковки с помощью MSIX в Visual Studio Set up your desktop application for MSIX packaging in Visual Studio

Для создания пакета для классического приложения в Visual Studio можно использовать Проект упаковки приложений Windows. You can use the Windows Application Packaging Project project in Visual Studio to generate a package for your desktop app. Затем вы можете распространить пакет в Microsoft Store, в Интернете, на своем предприятии или с помощью любого другого механизма распространения. Then you can distribute your package to the Microsoft Store, on the Web, in your enterprise or any other distribution mechanism you’re using.

Требуемая версия и рабочая нагрузка Visual Studio Required Visual Studio version and workload

Проект упаковки приложений Windows доступен в приведенных ниже версиях Visual Studio. The Windows Application Packaging Project project is available in the following versions of Visual Studio:

  • Visual Studio 2019 Visual Studio 2019
  • Visual Studio 2017 15.5 и более поздних версий Visual Studio 2017 15.5 and later

Чтобы шаблон проекта упаковки приложений Windows отобразился в меню «Добавление проекта», убедитесь, что у вас установлена хотя бы одна из следующих рабочих нагрузок Visual Studio: To see the Windows Application Packaging Project template in the ‘Add New Project’ menu, you need to make sure you have at least one of the following the Visual Studio workloads installed:

  • рабочая нагрузка «Разработка приложений для универсальной платформы Windows»; The ‘Universal Windows Platform development’ workload
  • дополнительный компонент «Средства упаковки MSIX» в рабочей нагрузке .NET Core; The Optional Component ‘MSIX Packaging Tools’ in the NET Core workload.
  • дополнительный компонент «Средства упаковки MSIX» в рабочей нагрузке «Разработка классических приложений .NET». The Optional Component ‘MSIX Packaging Tools’ in the .NET desktop development workload.

Для оптимальной работы рекомендуем использовать последний выпуск Visual Studio. For the best experience we recommend that you use the latest Visual Studio release.

Читайте также:  Linux очистка всех дисков

Проект упаковки приложений Windows в Visual Studio поддерживается в Windows 10 версии 1607 и более поздних версиях. The Windows Application Packaging Project project in Visual Studio is supported on Windows 10, version 1607, and later. Его можно использовать только в проектах, предназначенных для юбилейного обновления Windows 10 (10.0; сборка 14393) или более поздней версии. It can only be used in projects that target Windows 10 Anniversary Update (10.0; Build 14393) or a later release.

Ниже приведены некоторые другие действия, которые можно выполнить в проекте упаковки приложений Visual Studio. Here are a few other things you can do from the Visual Studio Application Packaging Project:

✔️ Автоматическое создание визуальных ресурсов Automatically generate visual assets.

✔️ Внесение изменений в манифест с помощью визуального конструктора Make changes to your manifest using a visual designer.

✔️ Создание пакета или набора с использованием мастера Generate your package or bundle using a wizard.

✔️ (При публикации в Microsoft Store) Простое назначение приложению идентификатора на основе имени, уже зарезервированного в Центре партнеров. (If publishing to the Microsoft Store) Easily assign an identity to your application from a name that you’ve already reserved in Partner Center.

Подготовьте свое приложение Prepare your application

Прежде чем приступить к созданию пакета для приложения, ознакомьтесь с этим руководством. Prepare to package a desktop application (Подготовка к упаковке классического приложения). Review this guide before you begin creating a package for your application: Prepare to package a desktop application.

Установите Проект упаковки приложения Windows в свое решение. Setup the Windows Application Packaging Project in your solution

В Visual Studio откройте решение, содержащее проект вашего классического приложения. In Visual Studio, open the solution that contains your desktop application project.

Добавьте Проект упаковки приложения Windows в свое решение. Add a Windows Application Packaging Project project to your solution.

Вам не потребуется добавлять в него какой-либо код. You won’t have to add any code to it. Он используется только для создания пакета. It’s just there to generate a package for you. Мы будем называть этот проект «проектом упаковки». We’ll refer to this project as the «packaging project».

Задайте целевую версию проекта (любую), но не забудьте указать для параметра Минимальная версия значение Юбилейное обновление Windows 10. Set the Target Version of this project to any version that you want, but make sure to set the Minimum Version to Windows 10 Anniversary Update.

В Обозревателе решений щелкните правой кнопкой мыши Приложения в проекте упаковки и выберите команду Добавить ссылку. In Solution Explorer, right-click the Applications folder under the packaging project and choose Add Reference.

Выберите пакет классического приложения и нажмите кнопку ОК. Choose your desktop application project, and then choose the OK button.

В пакет можно включить несколько классических приложений, однако, когда пользователи выбирают плитку с вашим приложением, запустить можно только одно из них. You can include multiple desktop applications in your package, but only one of them can start when users choose your app tile. В узле Приложения щелкните правой кнопкой мыши приложение, которое пользователи должны запускать, выбирая плитку приложения, и выберите Задать как точку входа. In the Applications node, right-click the application that you want users to start when they choose the app’s tile, and then choose Set as Entry Point.

Соберите проект упаковки, чтобы убедиться, что ошибок нет. Build the packaging project to ensure that no errors appear. При возникновении ошибок откройте Диспетчер конфигурации и убедитесь, что проекты предназначены для той же платформы. If you receive errors, open Configuration Manager and ensure that your projects target the same platform.

Используйте мастер Создание пакетов приложения, чтобы создать пакет или набор MSIX или файл .msixupload/.appxupload (для публикации в Store). Use the Create App Packages wizard to generate an MSIX package/bundle or an .msixupload/.appxupload file (for Store publishing to the Store).

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

Упаковка классического приложения в Visual Studio Package your desktop app in Visual Studio

См. статью Package a desktop or UWP app in Visual Studio (Упаковка классического приложения или приложения UWP в Visual Studio) See Package a Desktop or UWP app in Visual Studio

Запуск, отладка и тестирование классических приложений Run, debug or test your desktop application

Дополнительные ресурсы Additional resources

Видео Video

Call UWP APIs in desktop apps (Вызов API UWP в классических приложениях) Enhance your desktop application by adding UWP APIs

Улучшение классического приложения путем добавления проектов UWP и компоненты среды выполнения Windows Extend your desktop application by adding UWP projects and Windows Runtime Components

Распространение приложения Distribute your app

Оцените статью