Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Universal Windows Platform (UWP) Windows 10 çalıştıran her cihaz için ortak bir uygulama platformu sağlar. Bu modelde UWP uygulamaları hem tüm cihazlar için ortak olan WinRT API'lerini hem de uygulamanın çalıştığı cihaz ailesine özgü API'leri (Win32 ve .NET dahil) çağırabilir.
Bu kılavuzda, hem Yönetilen hem de Yerel projelerde kullanılabilen yerel bir UWP bileşeni (XAML denetimi dahil) ile bir NuGet paketi oluşturacaksınız.
Önkoşullar
Visual Studio 2017 veya Visual Studio 2015. 2017 Community sürümünü visualstudio.com ücretsiz yükleyin; Professional ve Enterprise sürümlerini de kullanabilirsiniz.
NuGet CLI. nuget.org/downloads'den en son sürümünü
nuget.exeindirin ve istediğiniz bir konuma kaydedin (indirme doğrudan)..exeArdından, henüz yapmadıysanız bu konumu PATH ortam değişkeninize ekleyin.
UWP Windows Runtime bileşeni oluşturma
Visual Studio'da, File > Yeni > Proje'yi seçin, Visual C++ > Windows > Evrensel düğümünü genişletin, Windows Runtime Bileşeni (Evrensel Windows) şablonunu seçin, ismi ImageEnhancer olarak değiştirin ve Tamam'a tıklayın. İstendiğinde Hedef Sürüm ve En Düşük Sürüm için varsayılan değerleri kabul edin.
Solution Explorer'da projeye sağ tıklayın, Add > Yeni Öğe' öğesini seçin. Visual C++ > XAML düğümüne tıklayın, Templated Control öğesini seçin, adı AwesomeImageControl.cpp olarak değiştirin ve Add öğesine tıklayın:
Solution Explorer'da projeye sağ tıklayın ve
Properties. Özellikler sayfasında Configuration Properties öğesini genişletin veC/C++ Output Files öğesine tıklayın. Sağdaki bölmede XML Belge Dosyaları Oluştur değerini Evet olarak değiştirin:
Şimdi çözüme sağ tıklayın, Toplu Derleme'yi seçin, aşağıda gösterildiği gibi iletişim kutusundaki üç Hata Ayıklama kutusunu işaretleyin. Bu, bir derleme yaptığınızda, Windows tarafından desteklenen hedef sistemlerin her biri için tam bir yapıt kümesi oluşturmanızı sağlar.
Toplu Derleme iletişim kutusunda Derle'ye tıklayarak projeyi doğrulayın ve NuGet paketi için ihtiyacınız olan çıkış dosyalarını oluşturun.
Uyarı
Bu kılavuzda paket için hata ayıklama bileşenlerini kullanacaksınız. Hata ayıklama olmayan paket için, bunun yerine Toplu Derleme iletişim kutusundaki Yayın (Release) seçeneklerini denetleyin ve ardından gelen adımlarda elde edilen Yayın (Release) klasörlerine bakın.
.nuspec dosyasını oluşturma ve güncelleştirme
İlk .nuspec dosyayı oluşturmak için aşağıdaki üç adımı uygulayın. Ardından, izleyen bölümler diğer gerekli güncelleştirmelerde size yol gösterir.
Bir komut istemi açın ve öğesini içeren
ImageEnhancer.vcxprojklasöre gidin (bu, çözüm dosyasının bulunduğu alt klasör olacaktır).NuGet
spec'yi oluşturacakImageEnhancer.nuspeckomutunu çalıştırın (dosyanın adı.vcxprojdosyasının adından alınır):nuget specImageEnhancer.nuspecbir düzenleyicide açın ve aşağıdakilerle eşleşmesi için YOUR_NAME'i uygun bir değerle değiştirerek güncelleyin. Özellikle değerin<id>nuget.org genelinde benzersiz olması gerekir ( paket oluşturma bölümünde açıklanan adlandırma kurallarına bakın). Ayrıca yazar ve açıklama etiketlerini de güncelleştirmeniz gerektiğini veya paketleme adımı sırasında bir hatayla karşılaşırsınız.<?xml version="1.0"?> <package > <metadata> <id>ImageEnhancer.YOUR_NAME</id> <version>1.0.0</version> <title>ImageEnhancer</title> <authors>YOUR_NAME</authors> <owners>YOUR_NAME</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Awesome Image Enhancer</description> <releaseNotes>First release</releaseNotes> <copyright>Copyright 2016</copyright> <tags>image enhancer imageenhancer</tags> </metadata> </package>
Uyarı
Genel tüketim için oluşturulan paketler için, bu etiketler başkalarının paketinizi bulmasına ve ne yaptığını anlamasına yardımcı olduğundan öğeye <tags> özellikle dikkat edin.
Pakete Windows meta verileri ekleme
Windows Runtime Bileşeni, genel kullanıma açık tüm türlerini açıklayan meta veriler gerektirir ve bu da diğer uygulamaların ve kitaplıkların bileşeni kullanmasına olanak tanır. Bu meta veriler, projeyi derlediğinizde oluşturulan ve NuGet paketinize eklenmesi gereken bir .winmd dosyasında bulunur. IntelliSense verilerine sahip bir XML dosyası da aynı anda oluşturulur ve eklenmelidir.
Aşağıdaki <files> düğümünü .nuspec dosyaya ekleyin.
<package>
<metadata>
...
</metadata>
<files>
<!-- WinMd and IntelliSense files -->
<file src="..\Debug\ImageEnhancer\ImageEnhancer.winmd" target="lib\uap10.0"/>
<file src="..\Debug\ImageEnhancer\ImageEnhancer.xml" target="lib\uap10.0"/>
</files>
</package>
XAML içeriği ekleme
Bileşeninize bir XAML denetimi eklemek için, denetim için varsayılan şablona sahip XAML dosyasını eklemeniz gerekir (proje şablonu tarafından oluşturulduğu gibi). Bu, şu bölümde de yer almaktadır <files> :
<?xml version="1.0"?>
<package >
<metadata>
...
</metadata>
<files>
...
<!-- XAML controls -->
<file src="Themes\Generic.xaml" target="lib\uap10.0\Themes"/>
</files>
</package>
Yerel uygulama kitaplıklarını ekleme
Bileşeniniz içinde ImageEnhancer türünün temel mantığı, her hedef çalışma zamanı için oluşturulan çeşitli ImageEnhancer.dll derlemelerde (ARM, x86 ve x64) yer alan yerel kodda yer alır. Bunları pakete eklemek için, ilgili .pri kaynak dosyalarıyla birlikte <files> bölümünde bunlara başvurun:
<?xml version="1.0"?>
<package >
<metadata>
...
</metadata>
<files>
...
<!-- DLLs and resources -->
<file src="..\ARM\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-arm\native"/>
<file src="..\ARM\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-arm\native"/>
<file src="..\ARM64\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-arm64\native"/>
<file src="..\ARM64\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-arm64\native"/>
<file src="..\x64\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-x64\native"/>
<file src="..\x64\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-x64\native"/>
<file src="..\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-x86\native"/>
<file src="..\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-x86\native"/>
</files>
</package>
".targets dosyasını ekleme"
Ardından, NuGet paketinizi tüketebilecek C++ ve JavaScript projelerinde gerekli derleme ve winmd dosyalarını tanımlamak için bir .targets dosyası gerekir. (C# ve Visual Basic projeleri bunu otomatik olarak yapar.) Aşağıdaki metni ImageEnhancer.targets içine kopyalayıp .nuspec dosyasıyla aynı klasöre kaydederek bu dosyayı oluşturun.
Not: Bu .targets dosyanın paket kimliğiyle (örneğin dosyadaki <Id>.nupspec öğe) aynı ada sahip olması gerekir:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ImageEnhancer-Platform Condition="'$(Platform)' == 'Win32'">x86</ImageEnhancer-Platform>
<ImageEnhancer-Platform Condition="'$(Platform)' != 'Win32'">$(Platform)</ImageEnhancer-Platform>
</PropertyGroup>
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'UAP'">
<Reference Include="$(MSBuildThisFileDirectory)..\..\lib\uap10.0\ImageEnhancer.winmd">
<Implementation>ImageEnhancer.dll</Implementation>
</Reference>
<ReferenceCopyLocalPaths Include="$(MSBuildThisFileDirectory)..\..\runtimes\win10-$(ImageEnhancer-Platform)\native\ImageEnhancer.dll" />
</ItemGroup>
</Project>
Ardından ImageEnhancer.targets öğesine .nuspec dosyanızda başvurun.
<?xml version="1.0"?>
<package >
<metadata>
...
</metadata>
<files>
...
<!-- .targets -->
<file src="ImageEnhancer.targets" target="build\native"/>
</files>
</package>
Son .nuspec
Son .nuspec dosyanız artık aşağıdaki gibi görünmelidir; burada yeniden YOUR_NAME uygun bir değerle değiştirilmelidir:
<?xml version="1.0"?>
<package >
<metadata>
<id>ImageEnhancer.YOUR_NAME</id>
<version>1.0.0</version>
<title>ImageEnhancer</title>
<authors>YOUR_NAME</authors>
<owners>YOUR_NAME</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Awesome Image Enhancer</description>
<releaseNotes>First Release</releaseNotes>
<copyright>Copyright 2016</copyright>
<tags>image enhancer imageenhancer</tags>
</metadata>
<files>
<!-- WinMd and IntelliSense -->
<file src="..\Debug\ImageEnhancer\ImageEnhancer.winmd" target="lib\uap10.0"/>
<file src="..\Debug\ImageEnhancer\ImageEnhancer.xml" target="lib\uap10.0"/>
<!-- XAML controls -->
<file src="Themes\Generic.xaml" target="lib\uap10.0\Themes"/>
<!-- DLLs and resources -->
<file src="..\ARM\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-arm\native"/>
<file src="..\ARM\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-arm\native"/>
<file src="..\ARM64\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-arm64\native"/>
<file src="..\ARM64\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-arm64\native"/>
<file src="..\x64\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-x64\native"/>
<file src="..\x64\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-x64\native"/>
<file src="..\Debug\ImageEnhancer\ImageEnhancer.dll" target="runtimes\win10-x86\native"/>
<file src="..\Debug\ImageEnhancer\ImageEnhancer.pri" target="runtimes\win10-x86\native"/>
<!-- .targets -->
<file src="ImageEnhancer.targets" target="build\native"/>
</files>
</package>
Bileşeni paketleme
Tüm gerekli dosyaların .nuspec referansları tamamlandığında, pack komutunu çalıştırmaya hazırsınız.
nuget pack ImageEnhancer.nuspec
Bu, ImageEnhancer.YOUR_NAME.1.0.0.nupkgoluşturur. Bu dosyayı NuGet Paket Gezgini gibi bir araçta açıp tüm düğümleri genişleterek aşağıdaki içerikleri görürsünüz:
Tavsiye
Dosya .nupkg , yalnızca farklı bir uzantıya sahip bir ZIP dosyasıdır. Paket içeriğini de inceleyebilir, ardından .nupkg'yı .zip olarak değiştirebilirsiniz, ancak paketi nuget.org'a yüklemeden önce uzantıyı geri yüklemeyi unutmayın.
Paketinizi diğer geliştiricilerin kullanımına açmak için Paket yayımlama yönergelerini izleyin.