I was trying to get the rolodex project compiled but I am having the hard time trying to do it.
I have installed the silverlight sdk and tools for VS 2008 from here.
I then opened up the Rolodex project and rereferenced the CSLA dlls.
I noticed then when I view any of the silverlight controls I get this error:
Could not load type 'System.Windows.Controls.IEditableObject' from assembly 'System.Windows.Controls.Data, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
and Building the project results in several misc errors:
*"ValidateXaml" task failed unexpectedly.
* 'TransactionalAttribute' could not be found
* 'SerializableAttribute' is an ambiguous reference between 'System.SerializableAttribute' and 'Csla.Serialization.SerializableAttribute'
And some other errors. Some of these I can fix, though, it seems like I simply didn't install something correctly to have this many compile time errors running around.
The csla dll referenced was located in the Rolodex sample CslaLight\cs\Rolodex\CslaBin\silverlight\csla.dll
I am hoping something is glaring obvious and someone can help me get this sample up and running. Any thoughts greatly appreciated.
I think you got the source code for Rolodex that is too old –
prior to Silverlight RTM. IEditableObject interface that the error
mentions got moved into a different namespace in RTM version. Try to
download the sample from this page:
http://www.lhotka.net/cslalight/download.aspx
The link is located in Samples column. I would also
download and compile CSLA itself just in case as well.
Thanks.
Sergey Barskiy
Principal Consultant
office: 678.405.0687 |
mobile: 404.388.1899
Microsoft Worldwide Partner of the Year | Custom
Development Solutions, Technical Innovation
From:
kyle.l.watson@gmail.com [mailto:cslanet@lhotka.net]
Sent: Friday, November 14, 2008 2:14 PM
To: Sergey Barskiy
Subject: [CSLA .NET] Trouble with Sample Projects - Rolodex
I was trying to get the rolodex project compiled but I am having the hard
time trying to do it.
I have installed the silverlight sdk and tools for VS 2008 from here.
I then opened up the Rolodex project and rereferenced the CSLA dlls.
I noticed then when I view any of the silverlight controls I get this error:
Could not load type 'System.Windows.Controls.IEditableObject' from assembly
'System.Windows.Controls.Data, Version=2.0.5.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'.
and Building the project results in several misc errors:
*"ValidateXaml" task failed unexpectedly.
* 'TransactionalAttribute' could not be found
* 'SerializableAttribute' is an ambiguous reference between
'System.SerializableAttribute' and 'Csla.Serialization.SerializableAttribute'
And some other errors. Some of these I can fix, though, it seems
like I simply didn't install something correctly to have this
many compile time errors running around.
The csla dll referenced was located in the Rolodex sample
CslaLight\cs\Rolodex\CslaBin\silverlight\csla.dll
I am hoping something is glaring obvious and someone can help me get this
sample up and running. Any thoughts greatly appreciated.
Sounds good. I'll make sure it has the latest RTM reference of CSLA.
sergeyb:I think you got the source code for Rolodex that is too old – prior to Silverlight RTM. IEditableObject interface that the error mentions got moved into a different namespace in RTM version. Try to download the sample from this page:
http://www.lhotka.net/cslalight/download.aspx
The link is located in Samples column. I would also download and compile CSLA itself just in case as well.
You need to reference DLLs because the ones in the solution may
be out of date. The sample is used to illustrate an approach, but you
should always use the latest Csla DLL to incorporate up to date changes and
fixes. I would start there and see if the error goes away.
Sergey Barskiy
Principal Consultant
office: 678.405.0687 |
mobile: 404.388.1899
Microsoft Worldwide Partner of the Year | Custom
Development Solutions, Technical Innovation
From: davidinnz
[mailto:cslanet@lhotka.net]
Sent: Saturday, November 15, 2008 5:34 AM
To: Sergey Barskiy
Subject: Re: [CSLA .NET] RE: Trouble with Sample Projects - Rolodex
sergeyb:
I think you got the source code for Rolodex that is too old ??? prior to Silverlight RTM. IEditableObject interface that the error mentions got moved into a different namespace in RTM version. Try to download the sample from this page:
http://www.lhotka.net/cslalight/download.aspx
The link is located in Samples column. I would also download and compile CSLA itself just in case as well.
I seem to be having similar problems to Kyle, though I downloaded files from
your link above.
I don't understand why I have to rereference the CSLA.dll in the Rolodex
sample, when there is a CslaBin folder included in the solution? Why doesn't
the solution point to those DLLs?
The main error I am getting is:
Error 6 The
"ValidateXaml" task failed unexpectedly.
System.TypeLoadException: Method 'GenerateEditingElement' in type
'Csla.Silverlight.ValidatedDataGridTextColumn' from assembly 'Csla, Version=3.6.0.0,
Culture=neutral, PublicKeyToken=93be5fdc093e4c30' does not have an
implementation.
at System.Reflection.Assembly._GetType(String name, Boolean
throwOnError, Boolean ignoreCase)
at System.Reflection.Assembly.GetType(String name)
at MS.Internal.Xaml.Schema.ClrNamespace.SearchAssembliesForSho
rtName(String shortName)
at MS.Internal.Xaml.Schema.ClrNamespace.TryGetXamlType(String
xamlName, Assembly localAssembly, XamlType& xamlType)
at MS.Internal.Xaml.Schema.ClrNamespace.GetXamlType(String
typeName, XamlTypeSearchSettings searchSettings, Assembly localAssembly,
Boolean throwOnError)
at MS.Internal.Xaml.XamlContext.GetXamlType(String prefix, String
name, XamlTypeSearchSettings searchSettings, XamlNamespace& xamlNs, Boolean
throwOnError)
at MS.Internal.Xaml.Parser.XamlScanner.ReadObjectElement(XamlName
name, Boolean isEmptyTag)
at MS.Internal.Xaml.Parser.XamlScanner.ReadElement()
at MS.Internal.Xaml.Parser.XamlScanner.DoXmlRead()
at MS.Internal.Xaml.Parser.XamlScanner.Read()
at
MS.Internal.Xaml.Parser.XamlPullParser.<P_PropertyElement>d__31.MoveNext()
at MS.Internal.Xaml.Parser.XamlPullParser.<P_ElementBody&
gt;d__23.MoveNext()
at
MS.Internal.Xaml.Parser.XamlPullParser.<P_Element>d__7.MoveNext()
at MS.Internal.Xaml.Parser.XamlPullParser.<P_ElementContent>d__39.MoveNext()
at
MS.Internal.Xaml.Parser.XamlPullParser.<P_ElementBody>d__23.MoveNext()
at
MS.Internal.Xaml.Parser.XamlPullParser.<P_Element>d__7.MoveNext()
at MS.Internal.Xaml.Parser.XamlPullParser.<P_ElementContent>d__39.MoveNext()
at
MS.Internal.Xaml.Parser.XamlPullParser.<P_ElementBody>d__23.MoveNext()
at
MS.Internal.Xaml.Parser.XamlPullParser.<P_Element>d__7.MoveNext()
at
MS.Internal.Xaml.Parser.XamlPullParser.<Parse>d__0.MoveNext()
at MS.Internal.Xaml.TextReaderEnumerator.MoveNext()
at MS.Internal.Xaml.XamlTextReader.Read()
at MS.MarkupCompiler.ValidationPass.ValidateXaml(String fileName,
Assembly[] assemblies, Assembly callingAssembly, TaskLoggingHelper log, Boolean
shouldThrow)
at
Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()
at
Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()
at Microsoft.Silverlight.Build.Tasks.ValidateXaml.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy
engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task,
Boolean& taskResult) Rolodex
It looks like it might be related to this warning?
Warning
5 The property 'ManualEnableControl' does not exist on the
type 'Button' in the XML namespace
'clr-namespace:Csla.Silverlight;assembly=Csla'.
C:\DMW\Dev\CGL\CSLA3.6\CslaLight\cs\Rolodex\Application\CompanyEditor.xaml
58&nbs p; 11 Rolodex
BTW, I attended your webcast. My only frustration was that I had not managed to
get this going beforehand.
david (Auckland, NZ)
Hi Sergey
I am getting similar errors while trying to compile any of silverlight samples.
Specific error i am getting is
Error 1 The "ValidateXaml" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'
at System.ModuleHandle.ResolveType(Int32 typeToken, RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle* methodInstArgs, Int32 methodInstCount)
at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.Module.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, Module decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, RuntimeMethodHandle& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.GetCustomAttributes(Module decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(Assembly assembly, RuntimeType caType)
at System.Reflection.Assembly.GetCustomAttributes(Type attributeType, Boolean inherit)
at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
at MS.Internal.Xaml.MS.Impl.XamlSystemBinding.AddPairsFromAssembly(XamlSchemaContext schemaContext, Assembly asm, String uri, List`1 pairs)
at MS.Internal.Xaml.MS.Impl.XamlSystemBinding.SearchForXamlNamespace(XamlSchemaContext schemaContext, String uriString, IEnumerable`1 referenceAssemblies)
at MS.Internal.Xaml.XamlSchemaContext.GetXamlNamespace(String xmlns, Assembly localAssembly)
at MS.Internal.Xaml.XamlSchemaContext.GetXamlNamespace(String xmlns)
at MS.MarkupCompiler.ValidationPass.ValidateXaml(String fileName, Assembly[] assemblies, Assembly callingAssembly, TaskLoggingHelper log, Boolean shouldThrow)
at Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()
at Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()
at Microsoft.Silverlight.Build.Tasks.ValidateXaml.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)
This was being raised in silverlight project.
I was able to isolate error by creating brand new simple silverlight project. As soon as I add reference to CSLA.dll (CSLA light) to my project . I thought that may be I am using old CSLA.dll. I downloaded latest CSLA light solution and built it. Then refere the csla.dll from client bin in my new test silverlight project. I again got this error while trying to build. If i remove the reference, I was able to build it.
I am not sure what in CSLA.dll is breaking this.
I am guessing that you do not have the latest version of SL
runtime or SL toolkit on your machine. Is this a possibility? Or,
maybe you are referencing .NET version of Csla.DLL instead of SL version?
Sergey Barskiy
Principal Consultant
office: 678.405.0687 |
mobile: 404.388.1899
Microsoft Worldwide Partner of the Year | Custom
Development Solutions, Technical Innovation
From: atyagi
[mailto:cslanet@lhotka.net]
Sent: Sunday, November 16, 2008 4:11 PM
To: Sergey Barskiy
Subject: Re: [CSLA .NET] RE: RE: Trouble with Sample Projects - Rolodex
Hi Sergey
I am getting similar errors while trying to compile any of silverlight
samples.
Specific error i am getting is
Error 1 The "ValidateXaml" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file or assembly 'System.Core,
Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of
its dependencies. The system cannot find the file specified.
File name: 'System.Core, Version=2.0.5.0, Culture=neutral,
PublicKeyToken=7cec85d7bea7798e'
at System.ModuleHandle.ResolveType(Int32 typeToken,
RuntimeTypeHandle* typeInstArgs, Int32 typeInstCount, RuntimeTypeHandle*
methodInstArgs, Int32 methodInstCount)
at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken,
RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[]
methodInstantiationContext)
at System.Reflection.Module.ResolveType(Int32 metadataToken,
Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord
caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, Module
decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType,
Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes,
RuntimeType& attributeType, RuntimeMethodHandle& ctor, Boolean&
ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.GetCustomAttributes(Module
decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType
attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes)
at System.Reflection.CustomAttribute.GetCustomAttributes(Assembly
assembly, RuntimeType caType)
at System.Reflection.Assembly.GetCustomAttributes(Type
attributeType, Boolean inherit)
at System.Attribute.GetCustomAttributes(Assembly element, Type
attributeType, Boolean inherit)
at
MS.Internal.Xaml.MS.Impl.XamlSystemBinding.AddPairsFromAssembly(XamlSchemaContext
schemaContext, Assembly asm, String uri, List`1 pairs)
at
MS.Internal.Xaml.MS.Impl.XamlSystemBinding.SearchForXamlNamespace(XamlSchemaContext
schemaContext, String uriString, IEnumerable`1 referenceAssemblies)
at MS.Internal.Xaml.XamlSchemaContext.GetXamlNamespace(String
xmlns, Assembly localAssembly)
at MS.Internal.Xaml.XamlSchemaContext.GetXamlNamespace(String
xmlns)
at MS.MarkupCompiler.ValidationPass.ValidateXaml(String fileName,
Assembly[] assemblies, Assembly callingAssembly, TaskLoggingHelper log, Boolean
shouldThrow)
at
Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()
at
Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()
at Microsoft.Silverlight.Build.Tasks.ValidateXaml.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy
engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task,
Boolean& taskResult)
This was being raised in silverlight project.
I was able to isolate error by creating brand new simple silverlight project.
As soon as I add reference to CSLA.dll (CSLA light) to my project . I
thought that may be I am using old CSLA.dll. I downloaded latest CSLA light
solution and built it. Then refere the csla.dll from client bin in my new test
silverlight project. I again got this error while trying to build. If i
remove the reference, I was able to build it.
I am not sure what in CSLA.dll is breaking this.
Thanks for quick reply.
I have latest SL runtime and Silverlight tool kit.
SL Version: 2.0.31005.0
Microsoft SL Tools for VS 2008 SP1 (Version 9.0.30729.146)
I am definitely referencing CSLA light version. I downloaded both CSLA light(3.6.0 Beta 2a) and CSLA Windows (3.6.0 Beta 2a) again. Build CSLA Light solution and can see CSLA.dll in output 'ClientBin' folder.
I reference this dll in my silver light app and again got the same error.
I am not sure then. I can see the file on my machine in C:\Program
Files\Microsoft SDKs\Silverlight\v2.0\Reference Assemblies
Maybe you need to install SL dev. run time, but it should been
installed with tools. My guess (and it is a guess), that there is something
wrong with SL run time on your machine. A quick test would be to create an
SL application from scratch and see if you can run it.
Sergey Barskiy
Principal Consultant
office: 678.405.0687 |
mobile: 404.388.1899
Microsoft Worldwide Partner of the Year | Custom
Development Solutions, Technical Innovation
From: atyagi
[mailto:cslanet@lhotka.net]
Sent: Monday, November 17, 2008 11:24 AM
To: Sergey Barskiy
Subject: Re: [CSLA .NET] RE: RE: RE: Trouble with Sample Projects -
Rolodex
Thanks for quick reply.
I have latest SL runtime and Silverlight tool kit.
SL Version: 2.0.31005.0
Microsoft SL Tools for VS 2008 SP1 (Version 9.0.30729.146)
I am definitely referencing CSLA light version. I downloaded both CSLA
light(3.6.0 Beta 2a) and CSLA Windows (3.6.0 Beta 2a) again. Build CSLA Light
solution and can see CSLA.dll in output 'ClientBin' folder.
I reference this dll in my silver light app and again got the same
error.
I guess it is just my machine. I created same env. on a colleague's machine and were able to build and run sample CSLA Rolodex silverlight solution!
I can succesfully run new silverlight application on my machine. Moment I add CSLA.dll (Light) to this simple app, it starts throwing same compile error even though no file in silverlight is referencing this assembly. One interesting thing is that I added same light assembly to just web project (not silverlight)and it compiles fine.
There may be something wrong with SL runtime. I will try installing it again.
Thanks to everybody for their help.
I'm not sure if this helps but this is the link to the silverlight sdk that I downloaded.
Thanks Kyle.
Issue was with just my machine. As I mentioned in earlier post that I could build easily on my colleague's machine with exaclty same env. I reimaged my OS and issue just went away.
You basically need to do TWO things to get these projects to work.
1) Correctly reference the CSLA.dlls. Basically, it is some what confusing because different projects require you to reference either the csla light dll or the csla dll and you need to read the notes to figure out which goes where.
The path of the Csla dll should look something like this:
\cslacs\Csla\bin\Debug\Csla.dll
and the csla light dll path should look like this:
cslalightcs\Csla\ClientBin\Csla.dll
You may need to open and build the csla and csla light solutions.
2) You need to change the location of the referenced sql database(s) in all your project files. For example, the Rolodex project uses a database file called Rolodex.mdf. Search through the entire solution for Rolodex and make sure it correctly corresponds to where you downloaded or placed the project files.
I believe after these two things everything worked fine for me, I don't think i'm forgetting anything...
kyle.l.watson@gmail.com:You basically need to do TWO things to get these projects to work.
1) Correctly reference the CSLA.dlls. Basically, it is some what confusing because different projects require you to reference either the csla light dll or the csla dll and you need to read the notes to figure out which goes where.
The path of the Csla dll should look something like this:
\cslacs\Csla\bin\Debug\Csla.dll
and the csla light dll path should look like this:
cslalightcs\Csla\ClientBin\Csla.dll
You may need to open and build the csla and csla light solutions.
2) You need to change the location of the referenced sql database(s) in all your project files. For example, the Rolodex project uses a database file called Rolodex.mdf. Search through the entire solution for Rolodex and make sure it correctly corresponds to where you downloaded or placed the project files.
I believe after these two things everything worked fine for me, I don't think i'm forgetting anything...
I wanted to add to this discussion that I had much the same problem happening to me on my laptop. Somewhere in the course of installing a tool, Silverlight 3 or something else I started getting errors and I noticed the refrence to System.Web.Silverlight was not found. After what seemed like weeks I finally found a refrence somewhere to the following control library from silverlight 2 tools:
http://code.msdn.microsoft.com/aspnetprojects
After unziping the file, it has the above dll adding it by browsing to it and adding it solved all my problems.
Mick
Copyright (c) Marimer LLC