From Rockford Lhotka's Expert C# 2008 and VB 2008 Business Objects books
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.
http://www.microsoft.com/downloads/details.aspx?FamilyId=c22d6a7b-546f-4407-8ef6-d60c8ee221ed&displaylang=en
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
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.
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.
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:
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?
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
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.0Microsoft 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.
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
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)
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 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.
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...