I have walked through all the debugging I can think of (and read about
on MSDN). There were a number of small problems with the PLK at
first, but I am almost positive I have them all corrected now.
[ComVisible(true)]
[PackageRegistration(UseManagedResourcesOnly = true)]
[DefaultRegistryRoot(@"Microsoft\VisualStudio\8.0")]
[ProvideService(typeof(VistaDBProviderObjectFactory), ServiceName =
"VistaDB Provider Object Factory")]
[ProvideMenuResource(1000, 1)]
[InstalledProductRegistration(false, "#100", "#102", "3",
IconResourceID = 400)]
[ProvideLoadKey("Standard", "3", "VistaDB 3", "VistaDB Software,
Inc.", 1)]
[Guid("f01fb7e1-221a-4b0b-b5c7-b95cec7cdd41")]
internal class VistaDBDataProviderPackage : Package
This is the top of my DataProviderPackage - The data is all identical
to what was given in the PLK, and identical to what is in the
registry. The registry was giving me errors at first with invalid /
missing keys until I figure out the names had to have the spaces
removed. EG: MinEdition rather than "Min Edition". And the ID field
in the registry is a DWORD 0x01 (and it is a 1 above and in the
resource file).
VSIP: Can not load package
'VistaDB.VisualStudio.Data.VSPackageBasedProvider.VistaDBDataProviderPackage',
invalid key authentication. ( GUID = {F01FB7E1-221A-4B0B-B5C7-
B95CEC7CDD41} )
The GUID is correct for the internal class
VistaDBDataProviderPackage : Package.
This is the only PLK you need, correct?
The PLK is installed in the resource file.
Using the package load analyzer this is the only thing it tells me:
Package Load Key(PLK) verification failed for package
{f01fb7e1-221a-4b0b-b5c7-b95cec7cdd41}.
Plk verification was based on the following entries in the registry -
CompanyName - VistaDB Software, Inc
ProductName - VistaDB 3
ProductVersion - 3
MinEdition - Standard
ID - 1
The ProductVersion does not match the "version" stamp in the
Assembly. Does that matter? It would seem to me to be strange to
require it to be the strongly named version (3.2.1.26) because we
change that for each BUILD and I would need a new PLK per build at
that point. Is that what you are supposed to do?
Very, very frustrating with no way to debug this...
VistaDB - 07 Sep 2007 18:36 GMT
I finally found my own answer...
In the assemblyinfo.cs file:
// DO NOT CHANGE: This MUST match the PLK value of 3 EXACTLY
[assembly: AssemblyVersion("3")]
// This version is allowed to change and is not used by the PLK
[assembly: AssemblyFileVersion(VistaDB.Build.Settings.MajorVersion + "." +
VistaDB.Build.Settings.MajorBuildVersion + ".1." +
VistaDB.Build.Settings.MinorBuildVersion)]
So it appears you can change the AssemblyFileVersion, but NOT the
AssemblyVersion.