If you are using VS2005, there is no way around the "expiring certificate" problem. As you have noticed, VS creates a [test] certificate that expires in a year.
If you purchase a certificate, those usually expire in a year as well. (I think if you purchase them for longer, they cost substantially more.)
HOWEVER, there is a way to create a test certificate that lasts whatever time period you want it to, say 5 years.
To do this, you need to track down MakeCert.exe. This is in the WIndows SDKs folder down a few levels under \bin\.
You need to bring up a command window and drill down to that folder, and run MakeCert. If you just type in MakeCert, it will give you a list of options. Here's an example:
Makecert -sv TestOct7.pvk -n "CN=TestOct07" TestOct7.cer -b 10/06/2008 -e 10/08/2013
This will make a certificate that expires at midnight on 10/8/2013.
Now you need to make a pfx file that you can use in Visual Studio. This uses pvk2pfx.exe, also in that bin folder.
pvk2pfx -pvk TestOct7.pvk -spc TestOct7.cer -pfx TestOct7.pfx -po mykeygoeshere
Then in Visual Studio under the Signing tab, choose "select a file" and go find that file and use it to sign your deployment.
If you are using (or are going to use) VS2008, and you are targeting the .Net 3.5 Framework (and deploying it as a prerequisite), you don't need to do this. You can sign it with a different certificate in a year, and it will not require the user to uninstall and reinstall.
You can also use VS2008 and target .Net 2.0 if all of your customers use Windows XP and have all of the service packs installed.
If you use VS2008 and target .Net 2.0, your Vista users will have to uninstall and reinstall. This is because the problem is fixed in .Net 2.0 SP-1 and .Net 3.5, and Vista users (with .net 3.0 by default) will not get the .Net 2.0 SP-1 as a winodws update, and they can not install it. There are details about that in my post that one of the pinned posts at the top of this forum.
RobinS.
GoldMail.com