试图使用DD4T.Templates.dll Tridion文件夹中的TcmUploadAssembly将TcmUploadAssembly重新上传到Tridion2011 SP1中--我确保上传了必要的DLLs - DD4T.ContentModel.Contracts.dll、DD4T.ContentModel.dll、DD4T.Templates.Base.dll --但我一直收到“错误:无法再加载一个所请求的类型”。
通过检查融合日志,我可以看到以下绑定问题:
LOG: DisplayName = TcmUploadAssembly.XmlSerializers, Version=5.4.0.509, Culture=neutral, PublicKeyToken=360aac4d3354074b, processorArchitecture=MSIL
(Fully-specified)
LOG: Appbase = file:///D:/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = TcmUploadAssembly.exe
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config.
LOG: Post-policy reference: TcmUploadAssembly.XmlSerializers, Version=5.4.0.509, Culture=neutral, PublicKeyToken=360aac4d3354074b, processorArchitecture=MSIL
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///D:/TcmUploadAssembly.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///D:/TcmUploadAssembly.XmlSerializers/TcmUploadAssembly.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///D:/TcmUploadAssembly.XmlSerializers.EXE.
LOG: Attempting download of new URL file:///D:/TcmUploadAssembly.XmlSerializers/TcmUploadAssembly.XmlSerializers.EXE.
LOG: All probing URLs attempted and failed.不知道这个TcmUploadAssembly.XmlSerializers是从哪里来的?
构建文件夹中有一个DD4T.ContentModel.XmlSerializers.dll,但它似乎与其他人合并以形成DD4T.Templates.merged.dll --但我不知道这是为了什么。
不知道从哪里开始--这是DD4T问题还是TcmUploadAssembly问题?(我在Tridion2011 SP1安装中尝试了与SP1相同的步骤,但得到了相同的错误,尽管对于较新的TcmUploadAssembly.XmlSerializers版本6.1.0.996)
编辑对此表示歉意--我已经将DD4T程序集添加到GAC中。我最初的帖子“我确保必要的DLL被上传”是误导的,但我的意思是加载到GAC!
我会检查Mihai关于注册.NET 4的观点--昨晚我这么做的时候已经很晚了!
发布于 2012-04-04 22:57:46
5.4版是Tridion 2009。我不认为使用来自T2009的T2009的T2011会起作用。因此,我肯定建议使用最新的TcmUploadAssembly (T2011SP1版本6.1.0.966)。
您是否在TCM服务器上将模板DLL DD4T.ContentModel.Contracts.dll、DD4T.ContentModel.dll和DD4T.Templates.Base.dll注册到GAC中?仅仅上传是不够的。看看http://code.google.com/p/dynamic-delivery-4-tridion/wiki/40_Templates。
另外,我看到您的错误引用了.NET 2。您是否使用.NET 4注册了DLL?
发布于 2015-03-16 15:54:10
推荐的方法是从https://code.google.com/p/dynamic-delivery-4-tridion/downloads/detail?name=DD4T-template-installer-1.31.zip下载安装程序。这会将DD4T.Templates.Merged.dll上载到Tridion,其中包括模板DLL +由ILMerge合并在一起的所有相关DLL。
如果出于任何原因不喜欢ILMerge,可以在GAC中放置以下DLL:
您可以通过下载源代码、打开动态传递Publishing.sln解决方案并构建这些DLL来获得这些DLL。
https://stackoverflow.com/questions/10019273
复制相似问题