0

VBScriptテンプレートを.net複合テンプレートに変換しており、ブローカークエリメカニズムの使用中にいくつかの問題に直面しています。

古いコードは次のようになります。

sQuery = "query" & nNumber &  ".AddCriteria(""schema"",""="", ""1132"");"& vbcrlf
if objFields.Item("FilterBD").Value.Count >0 Then
     if objFields.Item("FilterBD").Value(1) = "Yes" Then
      sQuery = sQuery & "query" & nNumber & ".AddOperator(Query.QueryOperator.AND_Field);"& vbcrlf
         sQuery = sQuery & "query" & nNumber & ".AddCriteria(""categorization"", ""="", ""Broker_Dealer/test"");" & vbcrlf
     End If
End If

これを.netに変換する際に、Tridion.ContentDelivery.DynamicContent dllの参照をプロジェクトに追加して、コード(サンプル)を次のように記述できるようにしました。

using Tridion.ContentDelivery.DynamicContent.Query;
Tridion.ContentDelivery.DynamicContent.Query.Query query = new Tridion.ContentDelivery.DynamicContent.Query.Query();
ItemSchemaCriteria isArticle = new ItemSchemaCriteria(1132);
CategoryCriteria bdCategory = new CategoryCriteria("Broker_Dealer/\" + \"test\"");
Criteria bdCriteria = CriteriaFactory.And(isArticle, bdCategory);
query.Criteria = bdCriteria;

このアプローチはこれまでのところVisualStudioでうまく機能していますが、テンプレートビルダーでCTをビルドしているときに、「ファイルまたはアセンブリを読み込めませんでした」というエラーが発生します。「ファイルまたはアセンブリを読み込めませんでした」Tridion.ContentDelivery.Interop、Version=6.1。 0.43、Culture = neutral、PublicKeyToken =ddfc895746e5ee6b'またはその依存関係の1つ。システムは指定されたファイルを見つけることができません。

GACにdllを登録するこれらの手順を実行した後も、同じ問題が発生しますか?

私たちが逃したものはありますか?親切に助けてください。ありがとう。

4

2 に答える 2

4

ブローカーに問い合わせる必要がある場合は、.NetTBBはそれを行う場所ではありません。VBSscriptテンプレートでは、サーバー側のコードを出力に書き込んでいるように見えます。これは正しいアプローチです。モジュラーテンプレートでは、同じアプローチをとる必要があります。適切な.Netコードを書き出すか、おそらくより良いアプローチとして、IISによって処理されるときにCDAPIを直接呼び出す.Net制御タグを書きます。

于 2012-09-18T08:46:37.747 に答える
1

Interop dllがbinフォルダーに存在することが確実な場合、私が考えることができる唯一のことは、それが間違ったバージョンであるということです。DLLのバージョンが6.1.0.43であることを確認できますか?

于 2012-09-18T08:51:55.787 に答える