3

尝试使用 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.

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

build 文件夹中有一个 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 的观点——我这样做的时候已经是昨晚很晚了!

4

2 回答 2

5

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

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

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

于 2012-04-04T22:57:46.287 回答
0

推荐的方法是从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,可以将以下 DLL 放入 GAC:

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

您可以通过下载源代码、打开 Dynamic Delivery Publishing.sln 解决方案并构建它来获取这些 DLL。

于 2015-03-16T15:54:10.233 回答