VSTO

From Blue-IT.org Wiki

Revision as of 15:37, 28 October 2015 by Apos (talk | contribs) (Creating self made codesigning certificates)

Why

So, why VSTO here in an OpenSource themed wiki?

  1. since 2015 .NET is opensource (really)
  2. C# ist open source
  3. 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)
  4. 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

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:

Who is affected by the same problem can also follow this guide and use a valid certificate - which you have to buy:

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.

Create the public key (.snk file) for signing your assemblies:

sn -p keypair.pfx key.snk

Go to the machine where you like to publish your software. Install the certificate as a trusted publiher an mark it as non exportable!

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

  • 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