I've written a UITypeEditor and it works when the editor lives in the same assembly (or one of the referenced assemblies) as the types using it. Then I can use something like:
[Editor(typeof(MyUIEditor), typeof(UITypeEditor))]
public MySpecialType SpecialType { get; set; }
However, I'd like to move this to a separate assembly, one that is not referenced by the assemblies with types that use it, because I don't want to have to distribute the code that is solely to for the VS designer. I know this can be done, as SF does this quite nicely. I've attempted to figure out how it was done (looked at SF code) and then I tried this:
[Editor("MyProject.Extensibility.MyUIEditor, MyProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e54367fa007b34d2", typeof(UITypeEditor))]
public MySpecialType SpecialType { get; set; }
with the extensibility assembly copied into the bin\debug folder with the main project. No joy.
How is this done? What am I missing? Can this be done if the assembly isn't strong-named?