Designtime IDE problem

Jun 11, 2011 at 1:32 PM

Hi!

I'm using Visual Studio 2010 Express. I've done everything as stated in Bernhard's blog and I've got a problem.

I've added the Ribbon.xml file and built the project, such that Ribbon.ribbon file appeared. However, when I try to set the ResourceName of ribbon to the generated file, IDE protests with a message:

Ribbon resource 'wfSketchbook.Ribbon.ribbon' not found in assembly 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'.

Application's name is wfSketchbook and so is the program's namespace.

However, if I edit the Form1.Designer.cs file, forcing the value property to "wfSketchbook.Ribbon.ribbon", build and run the application, suprisingly it starts and displays the ribbon as expected. However, the form designer shouts with big error:

http://www.spook.freshsite.pl/Temporary/ribbon-error.png

I'm ok with fact, that the ribbon is not visible during designtime, but the constantly appearing error message is annoying.

May I do something with that? Maybe I'm doing something wrong?

 

Best regards -- Spook.

Jun 11, 2011 at 2:03 PM

Spook,

The ribbon doesn't support a designer mode at all, anyway. However that error should not be occuring.

Is it necessary you link to the .NET Framework v4? If not, try using 3.5 - you can find this setting on the first page of your project's properties.

Jun 11, 2011 at 3:20 PM

I've rebuilt the Ribbon library for 3.5 and changed the application's target framework version to 3.5 and the same error appears (including the \v4.0_4.0.0.0... part).

Best regards -- Spook.

Jun 11, 2011 at 3:34 PM

Can you run any of the samples in the ribbon lib solution?

Jun 11, 2011 at 3:40 PM
Edited Jun 11, 2011 at 3:48 PM

Run, yes. Open in designer, no - the same error message appears.

Edit:

I've rebuilt the ribbon library for .NET 4.0 framework with no effect. The error message is still the same.

Best regards -- Spook.

Jun 11, 2011 at 3:45 PM

I wonder if it has anything to do with the fact you're using an express edition of visual studio....

Im wondering why it is looking for that resource in the Forms DLL.
i'll have a dig around for ya until one of the devs can get on this one.....

Jun 11, 2011 at 3:58 PM
Edited Jun 11, 2011 at 4:21 PM

I'd be very grateful. It would be strange though, if the Visual Studio version might interfere in that way. After all, the control is just a wrapper over the WinAPI functions.

This one might help a little more (full stack trace):

http://www.spook.freshsite.pl/Temporary/Ribbon-error2.png

Edit:

One more thing, the component in my VS does not look as in the screenshots. Instead of placeholder arrows, I see a non-painting hole:

http://www.spook.freshsite.pl/Temporary/Ribbon-error3.png

Best regards -- Spook.

Jun 11, 2011 at 5:01 PM

With the significant help of my friend, I have nailed down the problem.

static Util()
{
 _designMode = (System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToLower() == "devenv");
}

Since Express versions of Visual Studio does not have unified IDE, there are several binaries responsible for each language. In my case, changing "devenv" to "vcsexpress" did the trick. I think it's worth correcting, as it seems to be the only change required to use your component in Visual Studio Express versions.

By the way that was a hardcore trickery to debug Visual Studio Express under Visual Studio Express. But even that can be done :)

Thanks for the assistance anyway :)

 

Best regards -- Spook.

Jun 11, 2011 at 5:48 PM

A-ha, my theory on the express edition being the cause wasn't such a silly one in the end ..... :)

Glad you got it sorted!

Jun 11, 2011 at 5:52 PM

Well, that's another lesson for me, that "impossible" usually means "highly improbable" :)

Can you please pass the info further to the control devs?

 

Best regards -- Spook.

Jun 12, 2011 at 8:30 AM

Thank you for reporting this. You have found a bug and your fix directed to the right direction. Instead of replacing devenv with vcsexpress I would prefer to combine both in an "Or" to support both versions VS and VS Express.

Best regards,

Bernhard

Jun 16, 2011 at 6:39 PM
Edited Jun 16, 2011 at 6:40 PM

A new version of Util.cs is available in Source Code tab.

You can find more information about the solution here...

http://bernhardelbl.wordpress.com/2011/06/16/howto-detecting-design-mode-in-wpf-asp-net-and-windows-forms-applications/

 

Best regards,

Bernhard