使用TcmUploadAssembly上载DD4T.Templates.dll时出错"无法加载请求的类型"

Nei*_*eil 3 tridion

尝试使用DD4T Tridion Tools文件夹中的TcmUploadAssembly将DD4T.Templates.dll重新上载到Tridion 2011 SP1中 - 我确保上传了必要的DLL - DD4T.ContentModel.Contracts.dll,DD4T.ContentModel.dll,DD4T. Templates.Base.dll - 但我一直得到"错误:无法再加载一个请求的类型".

检查Fusion日志,我可以看到以下绑定问题:

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.
Run Code Online (Sandbox Code Playgroud)

不知道这个TcmUploadAssembly.XmlSerializers来自哪里?

构建文件夹中有一个DD4T.ContentModel.XmlSerializers.dll,但这似乎与其他人合并形成DD4T.Templates.merged.dll - 但我不知道这是为了什么.

不确定从哪里开始 - 这是DD4T问题还是TcmUploadAssembly问题?(我在Tridion 2011 SP1安装中尝试了与TcmUploadAssembly相同的步骤,但得到了相同的错误,尽管对于较新的TcmUploadAssembly.XmlSerializers,版本6.1.0.996)

为混淆编辑道歉 - 我已将DD4T程序集添加到GAC中.我的原始帖子" 我确保上传必要的DLL "是误导性的,但我的意思是加载到GAC!

我将检查Mihai关于注册.NET 4的观点 - 昨晚我做的时候已经很晚了!

Mih*_*riu 5

版本5.4是Tridion 2009.我不认为使用T2009中的TcmUploadAssembly可以与T2011一起使用.所以我绝对建议使用最新的TcmUploadAssembly(T2011SP1的v6.1.0.966).

你有没有注册的模板的DLL DD4T.ContentModel.Contracts.dll,DD4T.ContentModel.dllDD4T.Templates.Base.dll进入GAC您的TCM的服务器上?仅上传它们是不够的.请查看http://code.google.com/p/dynamic-delivery-4-tridion/wiki/40_Templates.

此外,我看到您的错误是指.NET 2.您是否使用.NET 4注册了DLL?

  • 或者,您可以使用DD4T模板安装程序.它将所有必需的DLL(DD4T.ContentModel,DD4T.ContentModel.Contracts和DD4T.Templates.Base)与实际模板合并为一个DLL,并上传它.在这种情况下,您无需在GAC中添加任何内容.安装程序可以从http://code.google.com/p/dynamic-delivery-4-tridion/downloads/list下载. (5认同)