İzlenecek yol: Komut satırı aracılığıyla Visual Studio uzantısı yayımlama
Bu kılavuzda, komut satırını kullanarak Visual Studio uzantısını Visual Studio Market'te yayımlama işlemi gösterilmektedir. Uzantınızı Market'e eklediğinizde geliştiriciler Uzantılar ve Güncelleştirmeler iletişim kutusunu kullanarak yeni ve güncelleştirilmiş uzantılara göz atabilir.
VsixPublisher.exe, Visual Studio uzantılarını Market'te yayımlamaya yönelik komut satırı aracıdır. ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\VsixPublisher.exe konumundan erişilebilir. Bu araçta kullanılabilen komutlar şunlardır: publish, deletePublisher, deleteExtension, login, logout.
Komutlar
publish
Market'te bir uzantı yayımlar. Uzantı bir vsix, exe/msi dosyası veya bağlantı olabilir. Uzantı aynı sürümde zaten varsa uzantının üzerine yazılır. Uzantı henüz yoksa yeni bir uzantı oluşturur.
Komut Seçenekleri | Açıklama |
---|---|
yük (gerekli) | Yayımlayacak yükün yolu veya "daha fazla bilgi URL'si" olarak kullanılacak bir bağlantı. |
publishManifest (gerekli) | Kullanılacak yayımlama bildirimi dosyasının yolu. |
ignoreWarnings | Uzantı yayımlarken yoksayılması gereken uyarıların listesi. Bu uyarılar, uzantı yayımlanırken komut satırı iletileri olarak gösterilir. (örneğin, "VSIXValidatorWarning01, VSIXValidatorWarning02") |
personalAccessToken | Yayımcının kimliğini doğrulamak için kullanılan Kişisel Erişim Belirteci (PAT). Sağlanmazsa PAT, oturum açmış kullanıcılardan alınır. |
VsixPublisher.exe publish -payload "{path to vsix}" -publishManifest "{path to vs-publish.json}" -ignoreWarnings "VSIXValidatorWarning01,VSIXValidatorWarning02"
deletePublisher
Market'te bir yayımcıyı siler.
Komut Seçenekleri | Açıklama |
---|---|
publisherName (gerekli) | Yayımcının adı (örneğin, tanımlayıcı). |
personalAccessToken (gerekli) | Yayımcının kimliğini doğrulamak için kullanılan Kişisel Erişim Belirteci. |
VsixPublisher.exe deletePublisher -publisherName "{Publisher Name}" -personalAccessToken "{Personal Access Token}"
deleteExtension
Market'ten bir uzantıyı siler.
Komut Seçenekleri | Açıklama |
---|---|
extensionName (gerekli) | Silinecek uzantının adı. |
publisherName (gerekli) | Yayımcının adı (örneğin, tanımlayıcı). |
personalAccessToken | Yayımcının kimliğini doğrulamak için kullanılan Kişisel Erişim Belirteci. Sağlanmazsa, pat oturum açmış kullanıcılardan alınır. |
VsixPublisher.exe deleteExtension -extensionName "{Extension Name}" -publisherName "{Publisher Name}"
oturum aç
Bir yayımcıyı makinede günlüğe kaydeder.
Komut Seçenekleri | Açıklama |
---|---|
personalAccessToken (gerekli) | Yayımcının kimliğini doğrulamak için kullanılan Kişisel Erişim Belirteci. |
publisherName (gerekli) | Yayımcının adı (örneğin, tanımlayıcı). |
Üzerine | Mevcut yayımcıların üzerine yeni kişisel erişim belirteci yazılması gerektiğini belirtir. |
VsixPublisher.exe login -personalAccessToken "{Personal Access Token}" -publisherName "{Publisher Name}"
logout
Yayımcıyı makine dışında günlüğe kaydeder.
Komut Seçenekleri | Açıklama |
---|---|
publisherName (gerekli) | Yayımcının adı (örneğin, tanımlayıcı). |
ignoreMissingPublisher | Belirtilen yayımcı henüz oturum açmamışsa aracın hata vermemesi gerektiğini belirtir. |
VsixPublisher.exe logout -publisherName "{Publisher Name}"
createPublisher
Dikkat
Bu komut artık kullanılamıyor. Visual Studio Market'e giderek yeni bir yayımcı oluşturabilirsiniz.
publishManifest dosyası
PublishManifest dosyası publish komutu tarafından kullanılır. Market'in bilmesi gereken uzantı hakkındaki tüm meta verileri temsil eder. Karşıya yüklenen uzantı bir VSIX uzantısından geliyorsa, "identity" özelliğinin yalnızca "internalName" ayarlanmış olması gerekir. Bunun nedeni, "kimlik" özelliklerinin geri kalanının vsixmanifest dosyasından oluşturulabilmesidir. Uzantı bir msi/exe veya bağlantı uzantısıysa, kullanıcının "identity" özelliğinde gerekli alanları sağlaması gerekir. Bildirimin geri kalanı Market'e özgü bilgiler içerir (örneğin, kategoriler, Soru-Cevap'ın etkin olup olmadığı vb.).
VSIX uzantısı publishManifest dosya örneği:
{
"$schema": "http://json.schemastore.org/vsix-publish",
"categories": [ "build", "coding" ], // The categories of the extension. Between 1 and 3 categories are required.
"identity": {
"internalName": "MyVsixExtension" // If not specified, we try to generate the name from the display name of the extension in the vsixmanifest file.
// Required if the display name is not the actual name of the extension.
},
"overview": "overview.md", // Path to the "readme" file that gets uploaded to the Marketplace. Required.
"priceCategory": "free", // Either "free", "trial", or "paid". Defaults to "free".
"publisher": "MyPublisherName", // The name of the publisher. Required.
"private": false, // Specifies whether or not the extension should be public when uploaded. Defaults to false.
"qna": true, // Specifies whether or not the extension should have a Q&A section. Defaults to true.
"repo": "https://github.com/MyPublisherName/MyVsixExtension" // Not required.
}
MSI/EXE veya LINK publishManifest dosya örneği:
{
"$schema": "http://json.schemastore.org/vsix-publish",
"categories": [ "build", "coding" ],
"identity": {
"description": "My extension.", // The description of the extension. Required for non-vsix extensions.
"displayName": "My Extension", // The display name of the extension. Required for non-vsix extensions.
"icon": "\\path\\to\\icon.ico", // The path to an icon file (can be relative to the json file location). Required for non-vsix extensions.
"installTargets": [ // The installation targets for the extension. Required for non-vsix extensions.
{
"sku": "Microsoft.VisualStudio.Community",
"version": "[10.0, 16.0)"
}
],
"internalName": "MyExtension",
"language": "en-US", // The default language id of the extension. Can be in the "1033" or "en-US" format. Required for non-vsix extensions.
"tags": [ "tag1", "tag2" ], // The tags for the extension. Not required.
"version": "3.7.0", // The version of the extension. Required for non-vsix extensions.
"vsixId": "MyExtension", // The vsix id of the extension. Not required but useful for showing updates to installed extensions.
},
"overview": "overview.md",
"priceCategory": "free",
"publisher": "MyPublisherName",
"private": false,
"qna": true,
"repo": "https://github.com/MyPublisherName/MyVsixExtension"
}
Varlık dosyaları
Varlık dosyaları, benioku dosyasına görüntü gibi öğeler eklemek için sağlanabilir. Örneğin, bir uzantıda aşağıdaki "genel bakış" Markdown belgesi varsa:
TestExtension
...
This is test extension.
![Test logo](images/testlogo.png "Test logo")
Önceki örnekteki "images/testlogo.png" sorununu çözmek için kullanıcı yayımlama bildiriminde aşağıdaki gibi "assetFiles" sağlayabilir:
{
"assetFiles": [
{
"pathOnDisk": "\\path\\to\\logo.png",
"targetPath": "images/logo.png"
}
],
// other required fields
}
Yayımlama kılavuzu
Önkoşullar
Bu kılavuzu izlemek için Visual Studio SDK'sını yüklemeniz gerekir. Daha fazla bilgi için bkz . Visual Studio SDK'sını yükleme.
Visual Studio uzantısı oluşturma
Bu durumda, varsayılan bir VSPackage uzantısı kullanacağız, ancak her uzantı türü için aynı adımlar geçerlidir.
- C# dilinde menü komutu olan "TestPublish" adlı bir VSPackage oluşturun. Daha fazla bilgi için bkz. İlk Uzantınızı Oluşturma: Merhaba Dünya.
Uzantınızı paketleme
vsixmanifest uzantısını ürün adı, yazar ve sürüm hakkında doğru bilgilerle güncelleştirin.
Uzantınızı Yayın modunda oluşturun. Artık uzantınız \bin\Release klasöründe VSIX olarak paketlenir.
Yüklemeyi doğrulamak için VSIX'e çift tıklayabilirsiniz.
Uzantıyı test edin
Uzantıyı dağıtmadan önce Visual Studio'nun deneysel örneğine doğru yüklendiğinden emin olmak için derleyin ve test edin.
Visual Studio'da hata ayıklamaya başlayın. visual studio'nun deneysel bir örneğini açmak için.
Deneysel örnekte Araçlar menüsüne gidin ve Uzantılar ve Güncelleştirmeler... seçeneğine tıklayın. TestPublish uzantısı orta bölmede görünmelidir ve etkinleştirilmelidir.
Araçlar menüsünde test komutunu gördüğünüzden emin olun.
Uzantıyı komut satırı aracılığıyla Market'te yayımlama
Uzantınızın Yayın sürümünü oluşturduğunuzdan ve güncel olduğundan emin olun.
publishmanifest.json ve overview.md dosyaları oluşturduğunuzdan emin olun.
Komut satırını açın ve ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\ dizinine gidin.
Yeni bir uzantı yayımlamak için aşağıdaki komutu kullanın:
VsixPublisher.exe publish -payload "{Path to vsix file}" -publishManifest "{path to publishManifest file}" -personalAccessToken "{Personal Access Token that is used to authenticate the publisher. If not provided, the pat is acquired from the logged-in users.}"
Uzantı başarıyla yayımlanırsa aşağıdaki komut satırı iletisini görürsünüz:
Uploaded 'MyVsixExtension' to the Marketplace.
Visual Studio Market'e giderek yayımladığınız yeni uzantıyı doğrulayabilirsiniz
Uzantıyı Visual Studio Market'ten yükleme
Uzantı yayımlandıktan sonra Visual Studio'ya yükleyin ve orada test edin.
Visual Studio'da, Araçlar menüsünde Uzantılar'a tıklayın ve Güncelleştirmeler... seçeneğine tıklayın.
Çevrimiçi'ne tıklayın ve TestPublish için arama yapın.
İndir’e tıklayın. Uzantı daha sonra yüklenmek üzere zamanlanır.
Yüklemeyi tamamlamak için Visual Studio'nun tüm örneklerini kapatın.
Uzantıyı kaldırma
Uzantıyı Visual Studio Market'ten ve bilgisayarınızdan kaldırabilirsiniz.
Uzantıyı Market'ten komut satırı aracılığıyla kaldırmak için
Uzantıyı kaldırmak istiyorsanız aşağıdaki komutu kullanın:
VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
Uzantı başarıyla silindikten sonra aşağıdaki komut satırı iletisini görürsünüz:
Removed 'MyVsixExtension' from the Marketplace.
Uzantıyı bilgisayarınızdan kaldırmak için
Visual Studio'da, Araçlar menüsünde Uzantılar'a tıklayın ve Güncelleştirmeler.
"MyVsixExtension" öğesini seçip Kaldır'a tıklayın. Uzantı daha sonra kaldırılacak şekilde zamanlanır.
Kaldırma işlemini tamamlamak için Visual Studio'nun tüm örneklerini kapatın.