Error during Create Design-Time Base Provider Node

Topics: Building and extending application blocks
May 1, 2007 at 8:49 AM
I was working with one of the tutorials about creating a new application block and everything was going fine until I tried to create a Design-Time Base Provider Node.

1. I right click on the DictionaryApplicationBlock.Configuration.Design project and launch the Create Design-Time Base Provider Node recipe.
2. I get the wizard and I enter the name (DictionaryNode) and choose the runtime configuration node (DictionaryApplicationBlockNamespace.Configuration.DictionaryProviderData) and the wizard figures out the Custom Configuration Type (DictionaryApplicationBlockNamespace.Configuration.CustomDictionaryProviderData) and the Parent UI Custom Node (DictionaryApplicationBlockNamespace.Configuration.Design.ApplicationBlockSettingsNode) correctly.
3. Click Next and the Design Time Node Properties are empty (as expected)
4. I click "Finish" and receive the following error.

Microsoft.Practices.RecipeFramework.ActionExecutionException: An exception occurred during the binding of reference or execution of recipe CreateDesignTimeAbstractNode. Error was: Action GenerateNodeContent failed to execute:
Exception of type 'Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates.TemplateException' was thrown..
You can remove the reference to this recipe through the Guidance Package Manager. ---> Compiling transformation: Metadata file 'EnvDTE.dll' could not be found

--- End of inner exception stack trace ---
at Microsoft.Practices.RecipeFramework.Recipe.UndoExecutedActionsAndRethrow(Exception ex)
at Microsoft.Practices.RecipeFramework.Recipe.ExecuteActions(IDictionaryService readOnlyArguments, IDictionaryService arguments, ITypeResolutionService resolution)
at Microsoft.Practices.RecipeFramework.Recipe.Execute(Boolean allowSuspend)
at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(String recipe, IAssetReference reference, IDictionary arguments)
at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(IAssetReference reference)
at Microsoft.Practices.RecipeFramework.RecipeReference.OnExecute()
at Microsoft.Practices.RecipeFramework.AssetReference.Execute()
at Microsoft.Practices.RecipeFramework.VisualStudio.RecipeMenuCommand.OnExec()
at Microsoft.Practices.RecipeFramework.VisualStudio.AssetMenuCommand.Invoke()

I have tried searching for the file 'EnvDTE.dll' on my system and was unable to find it. Moreover reinstalling framework 2.0 does not seem to resolve the issue.

May 1, 2007 at 4:14 PM
EnvDTE.dll is a Visual Studio DLL. I'm not sure what happened to your copy, but you may want to try repairing Visual Studio.

May 1, 2007 at 7:14 PM
I pasted a copy of EnvDTE.dll from another machine to my machine (at C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies) and it works fine now.

Thanks Tom.