locked
Registry Editing to allow Blend 3 to see third party behaviors in any application without adding a project reference RRS feed

  • Question

  • Hi all,

    I am working in my Registry Editor to set up a registry subkey to enable a silverlight behavior to be visible in any instance of Blend 3 that I create.  I am having the following problems:

    The MSDN advice says:

    Do one of the following:

    • For a behavior that is written for Microsoft Silverlight, create a registry subkey in \HKEY_CURRENT_USER\Software\Microsoft\Expression\Blend\v3.0\Toolbox\Silverlight\v3.0 that is named the same as the assembly namespace.

      I do not have that file path described in my registry?  I have this:

      \HKEY_CURRENT_USER\Software\Microsoft\Expression\Blend\3.0

      I am running a Win 7 RTM on a 64 bit machine, but I have the 32 bit Blend 3 install, which is part of Arturo's MS internal release of Studio 3.
      I have the following installed:

      Expression Blend 3 SDK
      Silverlight 3 SDK
      Silverlight 3 Toolkit July 2009
      Silverlight 3 Tools for Visual Studio 2008 SP 1

      So, how do I create the appropriate subkey reference? Do I add the missing folders via the Registry Editor to recreate the recommended path?

      Also, MSDN says to name the subkey the same as the assembly namespace.  What does that mean?  Does the default key have to be renamed to the full .dll of the behaviors assembly, or something else?

      Once the subkey is created MSDN also says to:

      In the subkey, create a default string value and set it to the path of your assembly.

      Can anyone explain the exact steps that this refers to? I assume it means just set the data of the subkey to the path of the assembly, but does it matter where the assembly resides?

      Thanks for any help.

    Wednesday, September 30, 2009 5:09 PM

All replies

  • On a 64 bit machine, the registry entry might look something like

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Expression\Blend\3.0\Toolbox\Silverlight\v3.0

    Also, you could just drop the assets into a pre-defined folder that we already have created as a part of the Blend 3 installation - C:\Program Files (x86)\Microsoft Expression\Blend 3\Libraries

    Thanks,
    Unni
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Thursday, October 1, 2009 7:38 PM
  • I have found the 64 bit registry entry that you mention and the path is exactly as you say it is.

    I tried two things and neither work.  First, I tried adding the .cs files and dll reference of the behavior that I want to add to Blend's asset library in the

    C:\Program Files (x86)\Microsoft Expression\Blend 3\Libraries

    I ran a new instance of Blend 3 and opened a new project.  Only the default 8 behaviors that ship with Blend 3 are in the Behaviors Tab.  The new behavior does not show up.  I built the project but that made no difference.

    I then tried adding a new subkey, which I named 'behaviors' to the path you mentioned:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Expression\Blend\3.0\Toolbox\Silverlight\v3.0

    In the default name in that new (Behaviors) key I added a data path to the .cs and dll files for the behavior:

    C:\Program Files (x86)\Microsoft Expression\Blend 3\Libraries

    I then opened a new instance of Blend 3 and opened a new Silverlight 3 + web project and opened the Assets Tab.  The behavior was still missing from the Behaviors tab.

    Can you explain what it is that I am doing wrong?

    Thanks.
    Friday, October 2, 2009 12:20 AM
  • It is possible that the library you might have was compiled against an non-release version of Blend. Is it possible to share out a repro in the form of a library that you are trying to add, but does not work?

    Thanks,
    Unni
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Friday, October 2, 2009 12:58 AM
  • First point the version of Blend 3 that I am using is a release copy, so I don't think that is the issue?

    I can add a third party behavior using the normal method of adding a reference to the dll and .cs files in an individual project.

    I am not sure what you mean by share out a repro of my library?

    I have tried adding several behaviors from Expression Gallery (eg the swivel behavior) to the  C:\Program Files (x86)\Microsoft Expression\Blend 3\Libraries

    and none of them are working.  I do not have any other libraries?

    Can you provide a step-by-step example (using any third party behavior for silverlight 3 from the Expression Gallery) that you know works when added to the C:\Program Files (x86)\Microsoft Expression\Blend 3\Libraries folder you recommend?

    Or, a similar example using the Registry Edit subkey creation method.  It would be useful to see what the steps are, so that I can check that my actions are correct.

    Thanks.

    Monday, October 5, 2009 5:03 PM
  • Did you have a previous beta version of Blend 3 installed at some point?  If so it is possible that you have an older version of the Blend 3 SDK installed.

    You say you are adding the dll and .cs files to the folder, what dll are you referring to?  If you are referring to the Behavior dll's that Blend ships with and then you have your custom behaviors in a .cs file you are missing a step.  You will need to compile your .cs files into a library(dll) and then put that dll into the location that Unni was talking about above.

    Monday, October 5, 2009 9:05 PM