İ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.

  1. 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

  1. vsixmanifest uzantısını ürün adı, yazar ve sürüm hakkında doğru bilgilerle güncelleştirin.

    update extension vsixmanifest

  2. Uzantınızı Yayın modunda oluşturun. Artık uzantınız \bin\Release klasöründe VSIX olarak paketlenir.

  3. 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.

  1. Visual Studio'da hata ayıklamaya başlayın. visual studio'nun deneysel bir örneğini açmak için.

  2. 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.

  3. 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

  1. Uzantınızın Yayın sürümünü oluşturduğunuzdan ve güncel olduğundan emin olun.

  2. publishmanifest.json ve overview.md dosyaları oluşturduğunuzdan emin olun.

  3. Komut satırını açın ve ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\ dizinine gidin.

  4. 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.}"
    
  5. Uzantı başarıyla yayımlanırsa aşağıdaki komut satırı iletisini görürsünüz:

    Uploaded 'MyVsixExtension' to the Marketplace.
    
  6. 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.

  1. Visual Studio'da, Araçlar menüsünde Uzantılar'a tıklayın ve Güncelleştirmeler... seçeneğine tıklayın.

  2. Çevrimiçi'ne tıklayın ve TestPublish için arama yapın.

  3. İndir’e tıklayın. Uzantı daha sonra yüklenmek üzere zamanlanır.

  4. 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

  1. Uzantıyı kaldırmak istiyorsanız aşağıdaki komutu kullanın:

    VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
    
  2. 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

  1. Visual Studio'da, Araçlar menüsünde Uzantılar'a tıklayın ve Güncelleştirmeler.

  2. "MyVsixExtension" öğesini seçip Kaldır'a tıklayın. Uzantı daha sonra kaldırılacak şekilde zamanlanır.

  3. Kaldırma işlemini tamamlamak için Visual Studio'nun tüm örneklerini kapatın.