Build Office Adding Project fails
Hello.
I have a Visual Studio solution with multiple projects, Websites, Console Applications, etc.
One of the projects is an Outlook AddIn.
When the solution is build by AppVeyor it fails. On our developer computers it works perfectly.
This is what we see in the Build Log
C:\projects\signtul\Tulpep.Singtul.OutlookAddin\Tulpep.Signtul.OutlookAddin.csproj(260,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Command exited with code 1
How could we fix it?
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
Support Staff 1 Posted by Feodor Fitsner on 22 Oct, 2014 05:41 PM
Will take a look!
2 Posted by ricardo.polo on 23 Oct, 2014 12:28 AM
I Confirm it happes with every Oulook Addind Certificate like this
https://github.com/ricardopolo/OutlookAddin
I found that it happens because the certificate used for the ClickOne manifest of the project is not present in the AppVeyor server. Do you Know how can we include a PFX in the project?
Support Staff 3 Posted by Feodor Fitsner on 23 Oct, 2014 12:49 AM
You can put PFX certificate into repo then use PowerShell to import it: http://technet.microsoft.com/en-us/library/hh848625.aspx
Support Staff 4 Posted by Feodor Fitsner on 24 Oct, 2014 05:02 AM
Ricardo,
I've made a simple Outlook add-in project to demonstrate how to install certificate: https://ci.appveyor.com/project/appvyr/office-addins-test
The repository: https://github.com/FeodorFitsner/office-addins-test
appveyor.yml
: https://github.com/FeodorFitsner/office-addins-test/blob/master/app...Let me know if you have any questions.
5 Posted by ricardo.polo on 27 Oct, 2014 02:22 AM
Thank you Feodor. I'll take a look.
One last thing, how do you ensure that for public project not every one gets the private key of the certificate?
In your AppVeyore.yml you are not specifying a password for the PFX. Is this a file without password or you are storing it in another place?
I think I could store the password in the Encrypt configuration data of Appveyor, but it wont compile for the developers in their computer? Do you have any idea?
Thanks and best regards
Support Staff 6 Posted by Feodor Fitsner on 27 Oct, 2014 11:19 PM
Right, in the example above I used default PFX without password.
You can Encrypt environment variable on AppVeyor UI (http://www.appveyor.com/docs/build-configuration#secure-variables), put encrypted value to
appveyor.yml
then use this variable in cmdlet call:If you want to put this in a build script and then use the same script on both AppVeyor and developer machines you can store any sensitive data in their registries, so in your build script you have:
where
HKCU:\SOFTWARE\MyCompany\MyProject
is your custom key with project build settings (keys, connection string, passwords, etc.) andPfxPassword
is string value with PFX password.To use the same script in AV environment you should put PfxPassword before the build:
Do you get the idea?
7 Posted by ricardo.polo on 30 Oct, 2014 03:13 AM
Hello. I tried my self and works as expected.
Would be great if from the AppVeyor console you can instal digital certificates.
Meanwhile this work:
In AppVeyor.yaml:
environment:
pfx_password:
secure: yfky3xGsKE0Kwe2xOHB2sQ==
before_build:
- ps: New-Item -path HKCU:\SOFTWARE\Company
- ps: New-ItemProperty -path HKCU:\SOFTWARE\Company -Name PfxPassword -Value $env:pfx_password
- ps: .\build.ps1
---
In build.ps1
$psw = (Get-ItemProperty -path HKCU:\SOFTWARE\Tulpep).PfxPassword
if(!$psw)
{
throw "HKCU\Software\Company\PfxPassword does not exist"
}
$psw = ConvertTo-SecureString $psw -AsPlainText -Force
Import-PfxCertificate -FilePath .\Certificate.pfx -CertStoreLocation cert:\CurrentUser\My -Password $psw
Support Staff 8 Posted by Feodor Fitsner on 30 Oct, 2014 03:26 AM
Cool, thanks for the update!
Installing certificates from UI could be something we can do in the future provided there are more project types that could benefit from that.
Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:49 AM.