首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DD4T.Templates.dll上载TcmUploadAssembly时“无法加载所请求的类型”错误

使用DD4T.Templates.dll上载TcmUploadAssembly时“无法加载所请求的类型”错误
EN

Stack Overflow用户
提问于 2012-04-04 21:08:44
回答 2查看 565关注 0票数 3

试图使用DD4T.Templates.dll Tridion文件夹中的TcmUploadAssembly将TcmUploadAssembly重新上传到Tridion2011 SP1中--我确保上传了必要的DLLs - DD4T.ContentModel.Contracts.dll、DD4T.ContentModel.dll、DD4T.Templates.Base.dll --但我一直收到“错误:无法再加载一个所请求的类型”。

通过检查融合日志,我可以看到以下绑定问题:

代码语言:javascript
复制
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的观点--昨晚我这么做的时候已经很晚了!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-04 22:57:46

5.4版是Tridion 2009。我不认为使用来自T2009的T2009的T2011会起作用。因此,我肯定建议使用最新的TcmUploadAssembly (T2011SP1版本6.1.0.966)。

您是否在TCM服务器上将模板DLL DD4T.ContentModel.Contracts.dllDD4T.ContentModel.dllDD4T.Templates.Base.dll注册到GAC中?仅仅上传是不够的。看看http://code.google.com/p/dynamic-delivery-4-tridion/wiki/40_Templates

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

票数 5
EN

Stack Overflow用户

发布于 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:

  • DD4T.ContentModel.dll
  • DD4T.ContentModel.Contracts.dll
  • DD4T.Templates.Base.dll
  • DD4T.ContentModel.XmlSerializers.dll

您可以通过下载源代码、打开动态传递Publishing.sln解决方案并构建这些DLL来获得这些DLL。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10019273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档