Error Rendering control - [A] cannot be cast to [B

2020-03-23 14:48发布

问题:

I am working on a composite control and this requires me to open multiple Visual studio IDEs and add the control on pages.

This causes Visual Studio to create multiple assemblies.

So every time this happens I close all IDEs, and delete ProjectAssemblies folder.

Can all this be avoided? It's very hard to work like that...

UPDATE:

The specific error is:

An unhandled exception has occured. [A]VerySimpleEditor.Toolbars cannot be cast to [B]VerySimpleEditor.ToolBars. Type A originates from 'VerySimpleEditor, Version=1.0.0.0, Culture=neutral,PublicToken=null' in the context 'LoadNeither' at location C:\Documents and Settings\Mark\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemlies\j-wxrc_j01\verysimpleeditor.dll. Type B originates from 'VerySimpleEditor, Version=1.0.0.0, Culture=neutral, PublicToken=null' in the context 'LoadNeither' at location C:\Documents and Settings\Mark\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemlies\bkqrbe-r01\VerySimpleEditor.dll.

When I try try to cast like this:

 using (System.IO.Stream textReader = typeof(TheEditor).Assembly.GetManifestResourceStream("VerySimpleEditor.Toolbar.xml"))
 {
         XmlSerializer deserializer = new XmlSerializer(typeof(ToolBars));
         ToolBars ob = (ToolBars)deserializer.Deserialize(textReader);

 }

The Control project (dll) and web site project are in one solution, i drag the control from toolbox to the webpage, after re-compiling control.
Any time I recompile control and add it to the page this error occurs, when I restart Visual studio and add the control, it works.

回答1:

In order to make this work you'll need to put the control project and the test project in two different solutions. The problem is unique to issues where you have to debug another running instance of Visual Studio. You'll see this if you work on Visual Studio add-ins, too.



回答2:

Try deleting both folders:

C:\Documents and Settings\Mark\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemlies\j-wxrc_j01    
C:\Documents and Settings\Mark\Local Settings\Application Data\Microsoft\VisualStudio\9.0\ProjectAssemlies\bkqrbe-r01

... and letting visual studio generates what it needs.

That worked for me.