I have a Microsoft Project VSTO add-in that works with SharePoint Online and an Azure SQL database. Different customers would be hooking to seperate SharePoint tenants and using a different database, but all the power users would need the add-in. I'm trying to migrate to Azure DevOps in the hopes that it can help simplify team communication, testing, and deploymnet/publishing, but I don't have the background to understand the Azure Project setup options (e.g. Kubernetes???). After several hours of searching I can't seem to find a good article or tutorial; can anyone point me in the right direction?
2 Answers
I was looking for any resources on the same topic. It took me a while but I have now figured out how to set up the build pipeline. The main challenge was to configure the ClickOnce manifest and assembly signing with pfx certificate file. So I leave it here in case somebody is in the same situation:
In Visual Studio 2019
Assembly -> Properties -> Signing:
Sign the ClickOnce manifests: Check
Certificate: Add *.pfx (Select from file)
Sign the assembly: Check
Choose a strong name key file: none
In Azure DevOps
- Go to Pipelines > Library > Secure Files and upload your codesign.pfx activate 'Authorize for use in all pipelines' press 'Save'
- Add new pipeline
- Choose 'Use the classic editor'
- Select a source: Azure Repos Git' press 'Continue'
- Select a template: '.NET Desktop'
- On the Agent job 1 press'+' to add 'Download Secure File Task' Secure File: choose your codesign.pfx
- Go to the 'Variables' tab and create a new pipeline variable certPassword (assign the *.pfx file password)
- On the 'Agent job 1' press'+' to add 'PowerShell Task' Type: inline Script:
$pfxpath = $env:DOWNLOADSECUREFILE_SECUREFILEPATH
$password = '$(certPassword)'
Add-Type -AssemblyName System.Security
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$cert.Import($pfxpath, $password, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"PersistKeySet")
$store = new-object system.security.cryptography.X509Certificates.X509Store -argumentlist "MY", CurrentUser
$store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]"ReadWrite")
$store.Add($cert)
$store.Close()
- Optional: if you need to execute UnitTests in your solution, add another 'Visual Studio Build Task' and leave the default settings
- Optional: leave the 'Visual Studio Test Task'
- In the second 'Visual Studio Build Task' MSBuild Arguments:
/target:publish /p:PublishURL=http://yourdistributionpage.com/ /p:UpdateEnabled=true /p:UpdateMode=Foreground /p:ProductName="YourProductName"
- Go to the 'Triggers' tab and Enable Continuous integration
- Save and Queue the pipeline.
Your drop file should now contain the ready to publish ClickOnce files and folders.
The pic shows the tasks sequence in the Build pipeline in case it helps.
This is where I got the PowerShell script that worked: Missing StoreKey PFX certificates when building a Visual Studio 2019 UWP project
This one doesn't explicitly refer to VSTO, but looks promising. Will post an update when I try it. Continuously Deploy Your ClickOnce Application From Your Build Server

- 41
- 4
-
Thanks, I will give this a try!! – Eric Christoph Jan 30 '20 at 23:28
Do know if you have checked this official tutorial for a quickstart to set up a azure devops project.
The tutorial has simple examples about signing up azure devops, creating your organization and creating a project within your organization, you can plan and track you works using Boards. Create work items for your project. And host your code in Azure Repos.
For admins that need to manage projects, team members and permissions,etc. Check this quickstart.
There are lots of stuff in azure devops that you need to check for better manage and organize your project.
Check this for full Azure DevOps Documentation.

- 27,483
- 2
- 31
- 43
-
I have looked through that, but it doesn't have anything about VSTO projects. It assumes everything is a web project, and I can't figure out where to start. – Eric Christoph Sep 10 '19 at 14:02
-
You can start by creating a repo for your VSTO projects in azure devops, and then you can start to decide your git flow strategy and write your code. You can also create work items to track your project progress if you want. – Levi Lu-MSFT Sep 18 '19 at 12:08