views:

115

answers:

2

We found a bug in Web Service Software Factory a description can be found here. There has been no updates on it so we decided to download the code and fix it ourself. Very simple bug and we patched it with maybe 3 lines of code. However* we have now tried to repackage it and use it and are finding that this is seemingly an impossible process.

Can someone please explain to me the process of PLKs? I have read all about them but still don't understand what is really required to distribute a VS package.

I was able to get it to load and run using a PLK obtained from here, but i am assuming that you have to be a partner to get a functional PLK that will be recognized on other peoples systems?

Every time i try and install this on a different computer I get a "Package Load Failure". Is the reason I am getting errors because I am not using a partner key? Is there any other way around this? For instance is there any way we can have an "internal" VS package that we can distribute?

Edit Files I had to change to get it to work.

  • First run devenv PostInstall.proj
  • Generate your plks and replace ##Package PLK## (.resx files) --Just note that package version is not the class name but is "Web Service Software Factory: Modeling Edition" -- And you need to remove the new lines from the key
  • ProductDefinitionRegistryFragment.wxi line 1252(update version to whatever version you used in plk)
  • Uncomment all // [VSShell::ProvideLoadKey("Standard", Constant in .tt files.
+1  A: 

The short answer is no, you don't need to be a VSIP partner registered with Microsoft to obtain and use a PLK. The PLK you obtained from the site should work on any VS install. (On a related note, Microsoft has eliminated the requirement for PLK's altogether for VS 2010.)

The following pages should help with debugging what the issue is:

http://msdn.microsoft.com/en-us/library/bb164677.aspx

http://blogs.msdn.com/dr._ex/archive/2006/12/14/debugging-package-load-failures.aspx

There is also a tool in the Visual Studio 2008 SDK called the Package Load Analyzer that should help you debug the load failure (and confirm that it's actually a PLK issue and not something else). Copy and run VSSDK_PLA.exe (under VisualStudioIntegration\Tools\Bin under the VS SDK install location) to your test machine to install the Package Load Analyzer tool.

Aaron Marten
thank you for the reassurance that you don't need to be a VSIP partner. I will try again, i don't understand how it would work on the dev machine but not any others. I will walk through all the steps once again and see if i have missed something.
Nix
If you have the Visual Studio SDK installed, the PLK check is not enforced for any package. This is why folks often see a package loading properly on their dev machine but not a test machine.
Aaron Marten
The process of PLKs is unnecessarily painful. I am actually testing yet again.
Nix
Hopefuly not a stupid question but is Package Version(from plk website) the same as Product Version on ProvideLoadKey
Nix
Final build now (kind of scared) but i think i found my issue and it is because of microsofts naming... Package Name vs Product Name. If it works, i will post solution above. Thanks for your help.
Nix
wow after a lot of work i have succeeded. All kinds of issues but thank you for your help.
Nix
A: 

You don't have to worry about package load keys when rebuilding the Web Service Software Factory because it is a guidance package that depends on GAX, which has the only PLK needed. To build guidance packages, like the Service Factory, you also need to have GAT installed.

The Service Factory source should contain the setup projects you need to build and redeploy it. If you have an issue, the discussion forums on its community site (http://servicefactory.codeplex.com) are monitored by team members. Response is pretty good.

Aaron is right that this whole story gets a LOT easier in VS2010. VSIX is pretty sweet. We are updating the Service Factory to VS2010. It should be ready for release within a month.

Don MS p&p

Don Smith
Funny you say that, march 9th http://servicefactory.codeplex.com/Thread/View.aspx?ThreadId=204308
Nix