Issue Testing XSLTs on Upgrade from 4.0.4.2 to 4.7.0.RC
Hi,
When I try saving and testing any XSLT in the umbraco backend, I get the following message:
System.IO.FileNotFoundException: Could not load file or assembly
'nunit.framework, Version=2.5.3.9345, Culture=neutral,
PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies. The system
cannot find the file specified.
File name: 'nunit.framework, Version=2.5.3.9345, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77'
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32
typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr*
methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule
module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext,
RuntimeTypeHandle[] methodInstantiationContext)
at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken,
RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[]
methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken,
Type[] genericTypeArguments, Type[] genericMethodArguments)
at
System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord
caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly,
RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType
attributeFilterType, Boolean mustBeInheritable, Object[] attributes,
IList derivedAttributes, RuntimeType& attributeType,
IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters,
Boolean& isVarArg)
at
System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule
decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount,
RuntimeType attributeFilterType, Boolean mustBeInheritable, IList
derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
at umbraco.BusinessLogic.Utils.TypeFinder.<>c__DisplayClass2.b__0(Type type)
at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at umbraco.BusinessLogic.Utils.TypeFinder.FindClassesMarkedWithAttribute(Type attribute)
at umbraco.macro.GetXsltExtensionsImpl()
at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String
cacheKey, Object syncLock, CacheItemPriority priority,
CacheItemRemovedCallback refreshAction, CacheDependency cacheDependency,
TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)
at umbraco.macro.GetXsltExtensions()
at umbraco.macro.AddMacroXsltExtensions()
at umbraco.presentation.webservices.codeEditorSave.SaveXslt(String
fileName, String oldName, String fileContents, Boolean ignoreDebugging)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
When I choose to "Skip testing", it seems to save the file. Any ideas on how to resolve the nunit error?
I copied all the updated components from the 4.7.0.RC directory in to my existing 4.0.4.2 directory as per the instructions found on http://our.umbraco.org/wiki/install-and-setup/upgrading-an-umbraco-installation. There doesn't seem to be any missing .dlls in my bin folder as well. (I did delete the App_global.asax.dll file as this was suggested in another post I found, but made no difference)
My xsltExtensions.config is:
<?xml version="1.0" encoding="utf-8" ?> <XsltExtensions> <!-- This file is used to register 3rt party xslt extensions (methods you can execute from xslt, like umbraco.library:NiceUrl) <ext assembly="assemblyName" type="assemblyName.namespace.type" alias="custom"> --> <ext assembly="/Umbraco.Forms.Core" type="Umbraco.Forms.Library" alias="umbraco.contour"> </ext> <ext assembly="/umbraco.editorControls" type="umbraco.editorControls.tags.library" alias="tagsLib"> </ext> <ext assembly="/Umlaut.Umb.Blog" type="Umlaut.Umb.Blog.BlogLibrary" alias="BlogLibrary"> </ext> </XsltExtensions>
I was able to get rid of the error by going to http://nunit.org/?p=download and downloading the appropriate nunit.framework.dll and placing it in my bin directory (this was not previously in my /bin directory). I am now receiving the following error instead:
Error occuredSystem.Exception: Unable to load
one or more of the types in assembly 'umbraco.standardFormhandlers,
Version=1.0.3811.17117, Culture=neutral, PublicKeyToken=null'.
Exceptions were thrown:
System.TypeLoadException: Could not load type
'umbraco.interfaces.IFormhandler' from assembly 'interfaces,
Version=1.0.4076.22254, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type
'umbraco.interfaces.IFormhandler' from assembly 'interfaces,
Version=1.0.4076.22254, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type
'umbraco.interfaces.IFormhandler' from assembly 'interfaces,
Version=1.0.4076.22254, Culture=neutral, PublicKeyToken=null'.
at umbraco.BusinessLogic.Utils.TypeFinder.FindClassesMarkedWithAttribute(Assembly assembly, Type attribute)
at umbraco.BusinessLogic.Utils.TypeFinder.FindClassesMarkedWithAttribute(Type attribute)
at umbraco.macro.GetXsltExtensionsImpl()
at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String
cacheKey, Object syncLock, CacheItemPriority priority,
CacheItemRemovedCallback refreshAction, CacheDependency cacheDependency,
TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)
at umbraco.macro.GetXsltExtensions()
at umbraco.macro.AddMacroXsltExtensions()
Your post got me thinking about having any additonal dlls I may not need in the system and it helped solve my issue. I deleted the following dlls and it seems to work now:
VistaDB.NET20.dll VistaDB For Umbraco.dll umbraco.standardFormhandlers.dll
and now all the XSLTs are saving with testing and displaying on the site correctly. Thanks!
Issue Testing XSLTs on Upgrade from 4.0.4.2 to 4.7.0.RC
Hi,
When I try saving and testing any XSLT in the umbraco backend, I get the following message:
System.IO.FileNotFoundException: Could not load file or assembly 'nunit.framework, Version=2.5.3.9345, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77' or one of its dependencies. The system cannot find the file specified.
File name: 'nunit.framework, Version=2.5.3.9345, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77'
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeType type, RuntimeType caType, Boolean inherit)
at umbraco.BusinessLogic.Utils.TypeFinder.<>c__DisplayClass2.b__0(Type type)
at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
at System.Collections.Generic.List`1.InsertRange(Int32 index, IEnumerable`1 collection)
at umbraco.BusinessLogic.Utils.TypeFinder.FindClassesMarkedWithAttribute(Type attribute)
at umbraco.macro.GetXsltExtensionsImpl()
at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String cacheKey, Object syncLock, CacheItemPriority priority, CacheItemRemovedCallback refreshAction, CacheDependency cacheDependency, TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)
at umbraco.macro.GetXsltExtensions()
at umbraco.macro.AddMacroXsltExtensions()
at umbraco.presentation.webservices.codeEditorSave.SaveXslt(String fileName, String oldName, String fileContents, Boolean ignoreDebugging)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
When I choose to "Skip testing", it seems to save the file. Any ideas on how to resolve the nunit error?
Thanks!
Hi Frank
Are you using any custom xsltExtension that might for some reason be missing in the upgraded version?
What does you xsltExtensions.config look like? And are you sure you're not somehow missing an assembly in the bin folder?
/Jan
Hi Jan,
I copied all the updated components from the 4.7.0.RC directory in to my existing 4.0.4.2 directory as per the instructions found on http://our.umbraco.org/wiki/install-and-setup/upgrading-an-umbraco-installation. There doesn't seem to be any missing .dlls in my bin folder as well. (I did delete the App_global.asax.dll file as this was suggested in another post I found, but made no difference)
My xsltExtensions.config is:
<?xml version="1.0" encoding="utf-8" ?>
<XsltExtensions>
<!--
This file is used to register 3rt party xslt extensions (methods you can execute from xslt, like umbraco.library:NiceUrl)
<ext assembly="assemblyName" type="assemblyName.namespace.type" alias="custom">
-->
<ext assembly="/Umbraco.Forms.Core" type="Umbraco.Forms.Library" alias="umbraco.contour">
</ext>
<ext assembly="/umbraco.editorControls" type="umbraco.editorControls.tags.library" alias="tagsLib">
</ext>
<ext assembly="/Umlaut.Umb.Blog" type="Umlaut.Umb.Blog.BlogLibrary" alias="BlogLibrary">
</ext>
</XsltExtensions>
--Frank
I was able to get rid of the error by going to http://nunit.org/?p=download and downloading the appropriate nunit.framework.dll and placing it in my bin directory (this was not previously in my /bin directory). I am now receiving the following error instead:
Error occuredSystem.Exception: Unable to load one or more of the types in assembly 'umbraco.standardFormhandlers, Version=1.0.3811.17117, Culture=neutral, PublicKeyToken=null'. Exceptions were thrown:
System.TypeLoadException: Could not load type 'umbraco.interfaces.IFormhandler' from assembly 'interfaces, Version=1.0.4076.22254, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type 'umbraco.interfaces.IFormhandler' from assembly 'interfaces, Version=1.0.4076.22254, Culture=neutral, PublicKeyToken=null'.
System.TypeLoadException: Could not load type 'umbraco.interfaces.IFormhandler' from assembly 'interfaces, Version=1.0.4076.22254, Culture=neutral, PublicKeyToken=null'.
at umbraco.BusinessLogic.Utils.TypeFinder.FindClassesMarkedWithAttribute(Assembly assembly, Type attribute)
at umbraco.BusinessLogic.Utils.TypeFinder.FindClassesMarkedWithAttribute(Type attribute)
at umbraco.macro.GetXsltExtensionsImpl()
at umbraco.cms.businesslogic.cache.Cache.GetCacheItem[TT](String cacheKey, Object syncLock, CacheItemPriority priority, CacheItemRemovedCallback refreshAction, CacheDependency cacheDependency, TimeSpan timeout, GetCacheItemDelegate`1 getCacheItem)
at umbraco.macro.GetXsltExtensions()
at umbraco.macro.AddMacroXsltExtensions()
Hi Jan,
Your post got me thinking about having any additonal dlls I may not need in the system and it helped solve my issue. I deleted the following dlls and it seems to work now:
VistaDB.NET20.dll
VistaDB For Umbraco.dll
umbraco.standardFormhandlers.dll
and now all the XSLTs are saving with testing and displaying on the site correctly. Thanks!
Frank,
I too had this problem, deleted the three DLLs mentioned (I suspect it was umbraco.standardFormhandlers.dll causing the problem) and all works now.
Ian
is working on a reply...