Events
May 19, 6 PM - May 23, 12 AM
Calling all developers, creators, and AI innovators to join us in Seattle @Microsoft Build May 19-22.
Register todayThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Once you develop your extension, you can package and publish it to the Visual Studio Marketplace. The Marketplace is a global repository for private and public extensions, integrations, and other offers from Microsoft.
Note
For information on the discovery properties available in your extension's manifest file that helps users discover and learn about your extension, see the Extension Manifest Reference.
The following list of requirements must be met before you publish to the Marketplace.
npm install -g tfx-cli
from a command prompt.overview.md
file to describe your listing in the Marketplace.All extensions and integrations, including extensions from Microsoft, have a publisher. Anyone can create a publisher and publish extensions under it. You can also give other people access to your publisher if a team is developing the extension.
A user owns the publisher, typically the user who created it. You can also share the publisher with other users.
Sign in to the Visual Studio Marketplace Publishing Portal.
If you're not already a member of an existing publisher, + Create a publisher. Enter a name in the publisher name field. The ID field should automatically get set based on the name you entered.
Note
Make note of the ID, as you need to set it in the manifest file of your extension.
If you're not prompted to create a publisher, scroll down to the bottom of the page and select Publish extensions below Related sites.
mycompany-myteam
. This identifier is used as the value for the publisher
attribute in your extension manifest file.My Team
Review the Marketplace Publisher Agreement, and then select Create.
Once the publisher's created, you're directed to manage items, but there aren't any items.
To upload your extension, package it as a VSIX 2.0-compatible .vsix file. Microsoft provides a cross-platform command-line interface (CLI) to package and publish your extension.
Open your extension manifest file (vss-extension.json
) and set the value of the publisher
field to the ID of your publisher. For example:
{
...
"id": "my-first-extension",
"publisher": "AnnetteNielsen",
...
}
From a command prompt, run the TFX tool's packaging command from your extension directory.
npx tfx-cli extension create
A message displays indicating your extension is successfully packaged:
=== Completed operation: create extension ===
- VSIX: C:\my-first-extension\AnnetteNielsen.my-first-extension-1.0.0.vsix
- Extension ID: my-first-extension
- Extension Version: 1.0.0
- Publisher: AnnetteNielsen
Note
Increment the version of your extension or integration in the manifest with every update.
Use the --rev-version
command line switch. This switch increments the patch version number of your extension and saves the new version to your manifest.
Check the size of the vsix after it gets packaged. If it's greater than 50 MB, you need to optimize it. To do so, see the following considerations:
Once your extension is packaged, you can upload it to the Marketplace under a publisher. The publisher
identifier specified in your extension's manifest file must match the identifier of the publisher the extension is uploaded under.
From the management portal, select your publisher from the drop-down menu at the top of the page.
Select New extension > Azure DevOps.
Drag and drop your file or select it to find your VSIX file, which you created in the previous packaging step, and then choose Upload.
After quick validation, your extension appears in the list of published extensions. Don't worry, the extension is only visible to you.
At this point, your extension isn't visible to any accounts and can't be installed until you share it.
Note
Microsoft runs a virus scan on each new and updated extension package published. Until the scan is all clear, we don't publish the extension in the Marketplace for public usage. This way we also avoid surfacing inappropriate or offensive content on the Marketplace pages.
Share your extension with an organization before you can install it in Azure DevOps. To share an extension, do the following tasks:
From the Marketplace management portal, select your extension from the list, right-click, and then choose Share/Unshare or Publish/Unpublish, depending on the extension.
Select Organization, and then enter the name of your organization. Select Enter.
Close the panel.
Your extension can now be installed into this organization.
To install your shared extension, do the following steps.
In the Marketplace, select your extension to open its overview page.
Note
Since your extension is private, only you and members of the organization it's shared with can see this page.
Select Get it free to start the installation process. Select the organization you shared the extension with from the dropdown menu.
Select Install.
Congratulations! You installed your extension into an organization and you're ready to try it.
Select Proceed to organization at the end of the installation wizard to go to the home page of the organization the extension was installed to (https://dev.azure.com/{organization}
).
Refresh your browser.
Open Organization settings, and then select Extensions.
You should see the new extension on the Installed tab.
To debug the extension using Visual Studio or Browser Developer Tools, change the manifest by adding the baseUri
property. This action speeds up the development without the need to redeploy the extension each time you change source code.
{
...
"baseUri": "https://localhost:44300",
...
}
When you change the manifest, it loads the extension from your local web server instance. For example, IISExpress in Visual Studio. After you change the manifest, deploy and install this debugging extension only once.
Note
Run your local web server in SSL mode because Azure DevOps demands that the web page is served from a secure source. Otherwise, you get an error in the browser console during the extension IFRAME loading.
To change an extension that's already published, update it.
Tip
We recommend updating the extension over removing and re-uploading. We also recommend having two extensions, for example, publisher.extension
and publisher.extension-dev
.
Publisher.extension
is public in the Marketplace, where customers can install it in their Azure DevOps organizations. Publisher.extension-dev
is kept private in the Marketplace and can be shared with an organization that you own and control.
You don't need to maintain two copies of source code of the extension. You can maintain two manifest files - one for each extension and during packaging of the extension you can provide the respective manifest file to the tfx-cli tool. For more information on arguments required for the tool, see TFX extension commands.
publisher.extension-dev
, for example.publisher.extension
, for example.The updated version of your extension automatically gets installed to accounts that have it already installed. New accounts where the extension is installed in the future also receive the latest version.
While you develop your extension or integration for the Marketplace, keep it private. To make your extension available publicly, set the public flag to true
in your manifest.
To have a public listing on the Marketplace, your integration or extension must meet the following qualifications:
Microsoft might also request a demo and to review the content planned for your Marketplace entry.
The Top Publisher program is only available for publishers with Azure DevOps extensions or integrations. It's not applicable for Visual Studio IDE and Visual Studio Code extension publishers.
The Top Publisher program recognizes publishers with commitment to their customers and the Marketplace through exemplary policies, quality, reliability, and support. Once you become a Top Publisher, all of your public offerings display the Top Publisher badge.
The Top Publisher program in the Marketplace is designed to help you evaluate or acquire Azure DevOps extensions and integrations with confidence. The Top Publisher badge implies that the publisher shows commitment to their customers and the Marketplace through exemplary policies, quality, reliability, and support. It's for publishers with one or more global Azure DevOps extensions or integrations and isn't applicable for Visual Studio IDE and Visual Studio Code extension publishers.
Marketplace assigns the badge to a publisher after carefully reviewing the publisher across the following parameters:
You can expect timely support and a good overall experience when you get an extension from a Top Publisher. Check out the offerings from the Top Publishers.
For more information on adding policies to your offering, see the extension manifest.
Update your publisher profile.
Through the publisher profile, you can showcase all of your offerings in one place along with key publisher-related information. To provide the information, which shows up in the profile, do the following steps:
a. Sign in to https://marketplace.visualstudio.com/manage/publishers using the account with which you publish and manage your offerings in the Visual Studio Marketplace.
b. Select the publisher and complete the About you section in the Details tab.
c. Save your changes and select View profile to see how it appears to consumers. You can use this profile page to evangelize your offerings.
Note
This program certifies the publisher, not the software, or security of their extensions and integrations. We recommend reviewing the safety information when evaluating offerings from a publisher. If you got an extension from a Top Publisher and aren't satisfied with your experience, consider engaging with the publisher first.
The team likely considers other parameters, such as active uptake of your offerings, install/get started counts, and ratings & reviews across your offerings before granting the badge. Microsoft reserves the right to grant, reject, or revoke the Top Publisher badge at any time.
Once a publisher is a Top Publisher, all its future updates and offerings must meet the previously listed requirements.
You can respond to reviews that customers leave for your extensions in the Visual Studio Marketplace. Find and select Reply next to a review if you have one of the following permissions: owner, creator, or contributor.
You can leave only one response. Avoid using reviews as a support forum. If you need more details, please provide a support alias for the reviewer to contact. You can then resolve their problems externally and update your reply with a resolution.
Keep the Visual Studio Marketplace an open, inviting, respectful, and helpful place for customers to find, try, install, and review extensions. Communication plays an important role in keeping a healthy community. To help create this environment, here are guidelines for publishers responding to customer reviews. Think deeply about your customer interactions and reflect on the spirit of the customer experience that the Marketplace is trying to create.
As a publisher, you can appeal to void a review if the issue reported is because of the Marketplace or underlying platform. If the issue is valid, Marketplace admins void the rating. You can Appeal from ratings and review section on your extension hub page.
You can unpublish free extensions if you no longer want to offer them in the Marketplace.
Consider removing your extension from the Marketplace in the following scenarios:
Certain criteria must be met for an extension to be unpublished or removed:
Action | Requirements |
---|---|
Unpublish | Only free extensions might be unpublished. |
Remove | Your extension must have zero (0) installs to be removed. |
Important
If you must remove your extension because of legal or security problems, contact Customer Support at the Developer Community. We review the request and manually delete the extension.
Select the extension on your publisher page and choose Unpublish on the menu.
Your extension is unpublished immediately from the Marketplace, and new users can't install it. Ratings and reviews for your extension stay intact.
To offer your extension again in the Marketplace, select Publish from the menu.
If your extension has zero installs, you can choose to remove it completely from the Marketplace. To do so, select Remove from the menu. You can't reverse this action.
Once your extension is available in the Visual Studio Marketplace, you can use the Reports feature. With this feature, you can track and analyze how the extension is performing and take required actions. To visit the extension hub, browse to your publisher page and select the extension or select the Reports link on the extension details page.
You can view acquisition-related data in this tab for the selected period.
For paid extensions, all transactional details for buy and trials are available with date, organization name, trial end date, and quantity. You can use the Contact action to communicate with your users. For more information, see the Contact section provided later in this article.
You can view the following statistics:
You can use search for text and dates to analyze and draw more insights from the detailed feedback.
For paid extensions, you can use the Contact action to communicate with your users. Contact section provided later in this article for more details.
This tab gives you the following information:
The details section provides all the reviews and your responses in transactional view.
You can Reply to a review or Edit a previous response and better manage engagement with your extension users. You can also Appeal to void a rating if the issue reported is because of the Marketplace or underlying platform. If the issue is valid, we void the rating.
The Q & A tab provides a snapshot of all questions from your extension users, with nonresponded queries at the top. You can reply to or edit previous responses to better manage engagement with your extension users.
All data elements available in the reports page are also available for download in XLS format to aid creating your own custom reports.
For paid extensions, you can use the Contact action to communicate with your users. This feature is available only for publishers with Contributor+ access on the extension.
Marketplace brokers the first communication with the user as our privacy policy doesn't allow direct sharing of customer email addresses. Only users who opted in for communication receive the email. The last contacted date for an organization is updated after sending a communication.
Important
Follow the guidance on transactional and promotional communication. Publishers found to be sending promotional communication or spamming users get added to a blocklist and lose access to the Contact feature for all their extensions.
Transactional communication: Emails conveying critical information necessary for the continued use of the extension or service, such as:
Promotional emails: Emails used to market your extension, product, service, website, or event, such as:
For more information, see the Marketplace Publisher Agreement.
Terminology | Description |
---|---|
Page views | Total number of extension detail page views. Repeated views are counted. |
Azure DevOps Services installs | Total number of organizations the extension is installed in. Repeated installs on the same organization get counted. |
Azure DevOps Server installs | Total number of collections the extension is installed in. Repeated installs on the same collection get counted. Disconnected server data isn't available. |
Events
May 19, 6 PM - May 23, 12 AM
Calling all developers, creators, and AI innovators to join us in Seattle @Microsoft Build May 19-22.
Register todayTraining
Learning path
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization