Solved

Need to sign and deploy an Access 2007 database *with* an installation wizard.

Posted on 2011-02-13
13
549 Views
Last Modified: 2012-05-11
I have developed a database application in Access 2007 for a client.  The client needs to be able to distribute this application in an install package to end users (paying customers) who may or may not have Access 2007 installed.  I've been using the Package Solution Wizard and it suits my needs fine, except for one issue.  We can't have the Access security alerts pop-up every time the user starts the application.

A signed certificate seemed the obvious solution; however, the ability to sign and distribute code in Access 2007 seems very limited (quite surprising to me).  I tried the "Package and Sign", but that just seems to create signed self-extracting zip file, which is entirely insufficient for my needs, and even when I click "Always trust this publisher", I still get the security alerts when running the extracted database.

It seems that I probably have no choice but to ditch the Package Solution Wizard entirely and use a third-party installation wizard.  I have limited experience with Inno Setup, but I've only done pretty plain-vanilla install scripts with it.

I need a packaging and distribution option that will allow the following:
Sign the application files so that when a user clicks "always trust", they are never prompted again when they start the application.
Set a desktop icon and start menu short cut.
Distribute multiple files in the package.
Easy to use installation wizard.
Include a EULA that must be agreed to, to install the application.

Thanks.
0
Comment
Question by:mlunsford
  • 7
  • 5
13 Comments
 
LVL 22

Expert Comment

by:Kelvin Sparks
Comment Utility
The best package I know of is distrubuted by Sagekey - www.sagekey.com. They are generally accepted as the best available for Access.

Kelvin
0
 
LVL 21
Comment Utility
I've been using the Package Solution Wizard and it suits my needs fine, except for one issue.  We can't have the Access security alerts pop-up every time the user starts the application.

Sounds like you are not having the P&D wizard create the trusted locations registry keys.

With Access 2007/2010 you do not need to sign the code. The new security model is to create a trusted location.


0
 
LVL 21

Accepted Solution

by:
Boyd (HiTechCoach) Trimmell, Microsoft Access MVP earned 500 total points
Comment Utility
I would agree the SageKey is the industry leader.

I also use Inno (free tool). I have this sample script: Inno Installer Script (Like Sagekey)
0
 
LVL 1

Author Comment

by:mlunsford
Comment Utility
Sounds like you are not having the P&D wizard create the trusted locations registry keys.

Can you tell me how to do this?
0
 
LVL 1

Author Comment

by:mlunsford
Comment Utility
I just downloaded the SageKey 14 day trial to test it out.  I created an installer; however, when I try to run the installer it created on my Win7 VM, i get an error that it can't register a DLL.
0
 
LVL 21

Assisted Solution

by:Boyd (HiTechCoach) Trimmell, Microsoft Access MVP
Boyd (HiTechCoach) Trimmell, Microsoft Access MVP earned 500 total points
Comment Utility
On  Page 3 of the Package Solution Wizard contains there is an option to add additional registry keys.


YOu might also want read this article I wrote here Access FAQs
*** there you will find a  link toDeploying Access 2007 Runtime-Based Solutions
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 1

Author Comment

by:mlunsford
Comment Utility
Thanks for the link.  Is the registry modification considered a recommended practice?  Having a program trust itself seems a little odd.
0
 
LVL 21
Comment Utility
Glad the link was helpful.

If someone   makes the choice to install a program are they not trusting it already?

Yes,  the registry modification is considered a recommended practice. Did you happen to read  Sagekey's page?

This is on Sagekey's Page: http://www.sagekey.com/installation_access.aspx

No digital signature
No macro security warnings and no need for a digital certificate. Your application will always be trusted so no annoying pop-ups.


0
 
LVL 1

Author Comment

by:mlunsford
Comment Utility
I was able to test his out last night.  My app is installing to %localappdata%, so when I set the trusted locations via the registry key, I used that path variable; however, when it set the registry key, it actually set the location to "%localappdata" instead of resolving it.  Is there a way to set an OS-independent path key via the installer or will I have to set the trusted location the first time it runs via VBA?
0
 
LVL 1

Author Comment

by:mlunsford
Comment Utility
Any thought on setting a relative path in the installer or whether it has to be done through VBA?
0
 
LVL 21

Assisted Solution

by:Boyd (HiTechCoach) Trimmell, Microsoft Access MVP
Boyd (HiTechCoach) Trimmell, Microsoft Access MVP earned 500 total points
Comment Utility
mlunsford,

Are you making sure that you are log on as a use that has Admin rights before attempting  any install?

I have had good luck using this environment variable in all versions of Windows:  %appdata%

Note: %localappdata% is new starting in  Vista.


Which installer are you using?





0
 
LVL 1

Author Comment

by:mlunsford
Comment Utility
TheHiTechCoach:  

Yes, I'm logged in as admin when installing.  I didn't realize that %localappdata% was new to Vista, I will most likely switch to %appdata% in that case, but I don't think that was causing my problem.  

I'm using the Access Package Solution Wizard (the limitations of this tool are quickly becoming quite apparent to me).  I've been using very simple Inno Setup scripts for updates to the main application (they simply install a new front end) and I'm strongly considering switching to it for initial installation, as well, but that will take some time to create and test the script (I appreciate the link to your script and the Inno Setup GUI tool, I'm looking over those) and the client is extremely anxious to get a product out the door.

What I attempted that didn't work was setting the path via the "Additional Registry Keys" section in Package Solution Wizard.  Here are the values I was using and the result I got:
Root: Current user
Key: Software\Microsoft\Office\12.0\Access\Security\Trusted Locations\LocationA
Name: path
Value: %localappdata%\[App Name]\

What I got was a trusted location of "%localappdata%\[App Name]\" instead of the expanded version of %localappdata%.  This is on a Win7 machine.  What I'm trying as an intermediate solution is using WshShell to test the value of the key path and if it doesn't match the application path, I change it.  This is clearly a sub-optimal solution for many reasons (not least of which is it creates an additional reference), but if I can't get another solution that I can setup and test today (tomorrow at the latest), this is my current "get it out the door" solution.
0
 
LVL 1

Author Closing Comment

by:mlunsford
Comment Utility
I finally confirmed that the VBA code I'm using is actually setting the correct trusted location.  I would still like to be able to have the key correctly set during installation, but that looks like it's going to take Inno Setup or another installer and I'll ask another question if I need help with that.

Unfortunately, it seems that adding the correct Tl was not my only problem (client is still getting the Microsoft Access Security Notice saying it can't determine if the content is trustworthy, etc) so I asked a new question here: http://www.experts-exchange.com/Microsoft/Development/MS_Access/Q_26834025.html
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
Familiarize people with the process of utilizing SQL Server views from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Access…
Basics of query design. Shows you how to construct a simple query by adding tables, perform joins, defining output columns, perform sorting, and apply criteria.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now