I have a WPF project built in Visual Studio using the .NET framework. The application will be deployed in multiple locations so that users on different networks will be able to run it and get updates (Publish -> Application Updates -> Before the application starts).
I'm trying to set up a pipeline to eventually test and publish the application to the multiple locations. To add security I've decided to self sign the manifest using (Signing -> Sign the ClickOnce manifests).
From what I've read (What is signing ClickOnce manifests for?), you should sign a manifest to add security to your users that the application / update came from you.
My problem is that when Azure tries to build the application in the Pipeline it generates the following error.
Short:
Error MSB3323: Unable to find manifest signing certificate in the certificate store
Long:
##[error]C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(3222,5): Error MSB3323: Unable to find manifest signing certificate in the certificate store.
The Googled solution seems to require me to remove this security feature. (“Unable to find manifest signing certificate in the certificate store” - even when add new key)
Did I misunderstand the solution, reason for self-signing or should I be looking for another solution? (Note: We are not looking to purchase a certificate from a 3rd party.)
Additional Information about the application
Security -> [Checked:true] Enable ClickOnce security settings
And
Security -> This is a full trust application
Let me know if you need additional information about project/solution/build/Azure Settings/... Not to sure what would be relevant to the question and I don't want to dump the entire project here. Please ask and I'll update.
EDIT:
YML DOCUMENT.
# ASP.NET Core (.NET Framework)
# Build and test ASP.NET Core projects targeting the full .NET Framework.
# Add steps that publish symbols, save build artifacts, and more:
# https://learn.microsoft.com/azure/devops/pipelines/languages/dotnet-core
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: '$(solution)'
msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'