Difference between revisions of "VSTO"
From Blue-IT.org Wiki
(→Creating self made codesigning certificates) |
(→Creating self made codesigning certificates) |
||
Line 33: | Line 33: | ||
I don't comment this behaviour of Windows in this case. Certainly it is good to have a strong certificate chain in a company. But hey microsoft, in some cases one simple just want to develop and share software in trusted environments without such a huge impact ;-) I am fulfilled with the believe, that MS sometimes thinks not only big, but practical. | I don't comment this behaviour of Windows in this case. Certainly it is good to have a strong certificate chain in a company. But hey microsoft, in some cases one simple just want to develop and share software in trusted environments without such a huge impact ;-) I am fulfilled with the believe, that MS sometimes thinks not only big, but practical. | ||
− | When you successfully created your code signing certificate | + | When you successfully created your code signing certificate (''.pfk'') then put it on a secure place. |
− | + | You have now to extract the public key of the certificate: | |
* http://stackoverflow.com/questions/8174229/how-to-create-a-snk-from-pfx-cer | * http://stackoverflow.com/questions/8174229/how-to-create-a-snk-from-pfx-cer | ||
− | + | Create the public key (.snk file) for signing your assemblies with sn.exe. You can find the path to sn.exe with | |
− | + | cd c:\ | |
+ | dir /b /s sn.exe | ||
− | + | E.g. | |
+ | cd MyWorkspace | ||
+ | "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\sn.exe" -p keypair.pfx key.snk | ||
+ | Now put the two files on an usb stick and go to the machine where you like to publish your software. | ||
+ | Install the certificate as a '''trusted publisher''' an mark it as non exportable! | ||
+ | |||
+ | Now you can sign your assemblies in Visual Studio with the key.snk. | ||
==== Signtool ==== | ==== Signtool ==== |
Revision as of 15:50, 28 October 2015
Contents
Why
So, why VSTO here in an OpenSource themed wiki?
- since 2015 .NET is opensource (really)
- C# ist open source
- you can get the Visual Studio Comunity Edition for free (really free also for commercial use, if you are not working for a > 250 men company)
- Word an Excel are running fine with wine (see #MSOffice_2010_and_Wine) - Outlook not tested yet,
In most cases Word, Excel and Powerpoint are the most often used programs in business for daily communication. It is like it is. Beeing able - now - without any restrictions, to program MS-Office legally also for commercial usage. The only "drawback" is: you HAVE TO register the application and therefore create a microsoft account to be able to work with it.
Troubleshooting
Cannot create Excel projects
- [ENG]: [http://stackoverflow.com/questions/13695526/why-cant-i-create-an-excel-vsto-workbook-project-in-visual-studio-2010/29037321#29037321 Stackoverflow|
- [GER]: Social MSDN
Most likely: You have an PERSONAL.xslb File in the XSLT start folder (see above posts).
Certificate Issues
Creating self made codesigning certificates
Be aware: this needs a Windows 2008 Server with a fully configured Certificaton Authority. You can download a Windows Server 2008 Eval, use the 180 day evaluation license and install it within a virtual machine environment - no need to do updates other stuff. If you are not familiar with such a routine then this could take you a whole workday! If this is not possible you have to buy a valid certificate from e. g. verisign.
From here to there I look over the boarder and use Visual Studio 2013 to develop applications in C#. E. g. for Office VSTO Addins. I was confronted with the problem, that I could not start my own developed applications. Office merely refused to open and run the AddIn. To make a (very) long story short, this article saved my life:
- http://blogs.technet.com/b/deploymentguys/archive/2013/06/14/signing-windows-8-applications-using-an-internal-pki.aspx
- and https://wiki.cac.washington.edu/display/infra/Extracting+Certificate+and+Private+Key+Files+from+a+.pfx+File
Who is affected by the same problem can also follow this guide and use a valid certificate - which you have to buy:
- https://robindotnet.wordpress.com/2013/02/24/windows-8-and-clickonce-the-definitive-answer-2/
- https://robindotnet.wordpress.com/2013/04/14/windows-8-and-clickonce-the-definitive-answer-revisited/
I don't comment this behaviour of Windows in this case. Certainly it is good to have a strong certificate chain in a company. But hey microsoft, in some cases one simple just want to develop and share software in trusted environments without such a huge impact ;-) I am fulfilled with the believe, that MS sometimes thinks not only big, but practical.
When you successfully created your code signing certificate (.pfk) then put it on a secure place.
You have now to extract the public key of the certificate:
Create the public key (.snk file) for signing your assemblies with sn.exe. You can find the path to sn.exe with
cd c:\ dir /b /s sn.exe
E.g.
cd MyWorkspace "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\sn.exe" -p keypair.pfx key.snk
Now put the two files on an usb stick and go to the machine where you like to publish your software.
Install the certificate as a trusted publisher an mark it as non exportable!
Now you can sign your assemblies in Visual Studio with the key.snk.
Signtool
Thanks to this article, I could solve a lot of problems:
You basically can find the path to signtool.exe searching within the MS Visual Studio installation directory:
cd C:\Program Files (x86) dir /s /b signtool.exe
which leads to:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\signtool.exe C:\Program Files (x86)\Windows Kits\8.0\bin\x64\signtool.exe C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe C:\Program Files (x86)\Windows Kits\8.1\bin\arm\signtool.exe C:\Program Files (x86)\Windows Kits\8.1\bin\x64\signtool.exe C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe
set MySignTool="C:\Program Files (x86)\Windows Kits\8.1\bin\x86\signtool.exe" set PathToKeyFilePfx= ... set ProjectDir= ... set TargetFileName= PATH_TO_DLL
"%MySignTool" sign /f %PathToKeyFilePfx%" /p MY_PASSWORD /v "%ProjectDir%\obj\Debug\%TargetFileName%"
VS Settings
Reset VS settings
- Devenv Command Line Switches: https://msdn.microsoft.com/en-us/library/xee0c8y7.aspx
- As admin: startmenu -> VS2013 -> VS-Tools -> Developer Command Prompt VS2103 (not native!)
devenv /resetuserdata devenv /setup
- As user: Open Developer Command Prompt VS2103 (not native!)
devenv /resetuserdata devenv /setup devenv /resetsettings