Przewodnik: publikowanie rozszerzenia programu Visual Studio za pomocą wiersza polecenia

W tym przewodniku pokazano, jak opublikować rozszerzenie programu Visual Studio w witrynie Visual Studio Marketplace przy użyciu wiersza polecenia. Po dodaniu rozszerzenia do witryny Marketplace deweloperzy mogą przeglądać nowe i zaktualizowane rozszerzenia za pomocą okna dialogowego Rozszerzenia i Aktualizacje.

VsixPublisher.exe to narzędzie wiersza polecenia do publikowania rozszerzeń programu Visual Studio w witrynie Marketplace. Można uzyskać do niego dostęp z pliku ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\VsixPublisher.exe. Polecenia dostępne w tym narzędziu to: publish, deletePublisher, deleteExtension, login, logout.

Polecenia

publish

Publikuje rozszerzenie w witrynie Marketplace. Rozszerzenie może być plikiem vsix, plikiem exe/msi lub linkiem. Jeśli rozszerzenie już istnieje z tą samą wersją, zastąpi rozszerzenie. Jeśli rozszerzenie jeszcze nie istnieje, utworzy nowe rozszerzenie.

Opcje poleceń opis
ładunek (wymagany) Ścieżka do ładunku do opublikowania lub link do użycia jako "więcej adresu URL informacji".
publishManifest (wymagane) Ścieżka do pliku manifestu publikowania do użycia.
ignoreWarnings Lista ostrzeżeń do zignorowania podczas publikowania rozszerzenia. Te ostrzeżenia są wyświetlane jako komunikaty wiersza polecenia podczas publikowania rozszerzenia. (na przykład "VSIXValidatorWarning01, VSIXValidatorWarning02")
personalAccessToken Osobisty token dostępu (PAT) używany do uwierzytelniania wydawcy. Jeśli nie zostanie podany, token dostępu zostanie uzyskany od zalogowanych użytkowników.
VsixPublisher.exe publish -payload "{path to vsix}" -publishManifest "{path to vs-publish.json}" -ignoreWarnings "VSIXValidatorWarning01,VSIXValidatorWarning02"

deletePublisher

Usuwa wydawcę w witrynie Marketplace.

Opcje poleceń opis
publisherName (wymagane) Nazwa wydawcy (na przykład identyfikator).
personalAccessToken (wymagane) Osobisty token dostępu używany do uwierzytelniania wydawcy.
VsixPublisher.exe deletePublisher -publisherName "{Publisher Name}" -personalAccessToken "{Personal Access Token}"

deleteExtension

Usuwa rozszerzenie z witryny Marketplace.

Opcje poleceń opis
extensionName (wymagane) Nazwa rozszerzenia do usunięcia.
publisherName (wymagane) Nazwa wydawcy (na przykład identyfikator).
personalAccessToken Osobisty token dostępu używany do uwierzytelniania wydawcy. Jeśli nie zostanie podany, pat zostanie uzyskany od zalogowanych użytkowników.
VsixPublisher.exe deleteExtension -extensionName "{Extension Name}" -publisherName "{Publisher Name}"

Nazwa logowania

Rejestruje wydawcę na maszynie.

Opcje poleceń opis
personalAccessToken (wymagane) Osobisty token dostępu używany do uwierzytelniania wydawcy.
publisherName (wymagane) Nazwa wydawcy (na przykład identyfikator).
Zastąpić Określa, że każdy istniejący wydawca powinien zostać zastąpiony nowym osobistym tokenem dostępu.
VsixPublisher.exe login -personalAccessToken "{Personal Access Token}" -publisherName "{Publisher Name}"

wylogowanie

Rejestruje wydawcę z komputera.

Opcje poleceń opis
publisherName (wymagane) Nazwa wydawcy (na przykład identyfikator).
ignoreMissingPublisher Określa, że narzędzie nie powinno błędu, jeśli określony wydawca nie jest jeszcze zalogowany.
VsixPublisher.exe logout -publisherName "{Publisher Name}"

createPublisher

Uwaga

To polecenie nie jest już dostępne. Możesz utworzyć nowego wydawcę, przechodząc do witryny Visual Studio Marketplace.

plik publishManifest

Plik publishManifest jest używany przez polecenie publikowania. Reprezentuje wszystkie metadane rozszerzenia, które musi wiedzieć witryna Marketplace. Jeśli przekazywane rozszerzenie pochodzi z rozszerzenia VSIX, właściwość "identity" musi mieć tylko zestaw "internalName". Dzieje się tak, ponieważ pozostałe właściwości "identity" można wygenerować z pliku vsixmanifest. Jeśli rozszerzenie jest plikiem msi/exe lub rozszerzeniem łącza, użytkownik musi podać wymagane pola we właściwości "identity". Pozostała część manifestu zawiera informacje specyficzne dla witryny Marketplace (na przykład kategorie, czy pytania i odpowiedzi są włączone itp.).

Przykład pliku publishManifest rozszerzenia VSIX:

{
    "$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.
}

Przykład pliku MSI/EXE lub LINK publishManifest:

{
    "$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"
}

Pliki elementów zawartości

Pliki elementów zawartości można udostępnić do osadzania elementów, takich jak obrazy w pliku readme. Jeśli na przykład rozszerzenie ma następujący dokument markdown "przegląd":

TestExtension
...
This is test extension.
![Test logo](images/testlogo.png "Test logo")

Aby rozwiązać problem "images/testlogo.png" w poprzednim przykładzie, użytkownik może podać element "assetFiles" w manifeście publikowania, jak pokazano poniżej:

{
    "assetFiles": [
        {
            "pathOnDisk": "\\path\\to\\logo.png",
            "targetPath": "images/logo.png"
        }
    ],
    // other required fields
}

Przewodnik po publikowaniu

Wymagania wstępne

Aby wykonać czynności opisane w tym przewodniku, należy zainstalować zestaw Visual Studio SDK. Aby uzyskać więcej informacji, zobacz Instalowanie zestawu Visual Studio SDK.

Tworzenie rozszerzenia programu Visual Studio

W takim przypadku użyjemy domyślnego rozszerzenia VSPackage, ale te same kroki są prawidłowe dla każdego rodzaju rozszerzenia.

  1. Utwórz pakiet VSPackage w języku C# o nazwie "TestPublish", który ma polecenie menu. Aby uzyskać więcej informacji, zobacz Tworzenie pierwszego rozszerzenia: Hello World.

Pakowanie rozszerzenia

  1. Zaktualizuj rozszerzenie vsixmanifest, podając poprawne informacje o nazwie produktu, autorze i wersji.

    update extension vsixmanifest

  2. Skompiluj rozszerzenie w trybie wydania . Teraz rozszerzenie zostanie spakowane jako plik VSIX w folderze \bin\Release.

  3. Możesz kliknąć dwukrotnie plik VSIX, aby zweryfikować instalację.

Testowanie rozszerzenia

Przed dystrybucją rozszerzenia, skompiluj je i przetestuj, aby upewnić się, że jest on poprawnie zainstalowany w eksperymentalnym wystąpieniu programu Visual Studio.

  1. W programie Visual Studio rozpocznij debugowanie. aby otworzyć eksperymentalne wystąpienie programu Visual Studio.

  2. W wystąpieniu eksperymentalnym przejdź do menu Narzędzia, a następnie kliknij pozycję Rozszerzenia i Aktualizacje.... Rozszerzenie TestPublish powinno pojawić się w środkowym okienku i być włączone.

  3. W menu Narzędzia upewnij się, że jest wyświetlane polecenie testowe.

Publikowanie rozszerzenia w witrynie Marketplace za pomocą wiersza polecenia

  1. Upewnij się, że utworzono wersję wydania rozszerzenia i że jest ona aktualna.

  2. Upewnij się, że utworzono pliki publishmanifest.json i overview.md.

  3. Otwórz wiersz polecenia i przejdź do katalogu ${VSInstallDir}\VSSDK\VisualStudioIntegration\Tools\Bin\.

  4. Aby opublikować nowe rozszerzenie, użyj następującego polecenia:

    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. Po pomyślnym opublikowaniu rozszerzenia zostanie wyświetlony następujący komunikat wiersza polecenia:

    Uploaded 'MyVsixExtension' to the Marketplace.
    
  6. Możesz zweryfikować opublikowane nowe rozszerzenie, przechodząc do witryny Visual Studio Marketplace

Instalowanie rozszerzenia z witryny Visual Studio Marketplace

Teraz, po opublikowaniu rozszerzenia, zainstaluj je w programie Visual Studio i przetestuj je tam.

  1. W programie Visual Studio w menu Narzędzia kliknij pozycję Rozszerzenia i Aktualizacje....

  2. Kliknij pozycję Online , a następnie wyszukaj pozycję TestPublish.

  3. Kliknij pozycję Pobierz. Rozszerzenie zostanie następnie zaplanowane do zainstalowania.

  4. Aby ukończyć instalację, zamknij wszystkie wystąpienia programu Visual Studio.

Usuwanie rozszerzenia

Rozszerzenie można usunąć z witryny Visual Studio Marketplace i z komputera.

Aby usunąć rozszerzenie z witryny Marketplace za pośrednictwem wiersza polecenia

  1. Jeśli chcesz usunąć rozszerzenie, użyj następującego polecenia:

    VsixPublisher.exe deleteExtension -publisherName "TestVSIXPublisher" -extensionName "MyVsixExtension"
    
  2. Po pomyślnym usunięciu rozszerzenia zostanie wyświetlony następujący komunikat wiersza polecenia:

    Removed 'MyVsixExtension' from the Marketplace.
    

Aby usunąć rozszerzenie z komputera

  1. W programie Visual Studio w menu Narzędzia kliknij pozycję Rozszerzenia i Aktualizacje.

  2. Wybierz pozycję "MyVsixExtension", a następnie kliknij przycisk Odinstaluj. Rozszerzenie zostanie następnie zaplanowane do odinstalowania.

  3. Aby ukończyć odinstalowywanie, zamknij wszystkie wystąpienia programu Visual Studio.