0

を使用して、名前空間Ektron v8.02を利用する単純なクラスライブラリを作成しました。Ektron.Cms.Framework.Core.Content

テストに役立つコンソールアプリをソリューションに追加しました。コンソールアプリに、元のクラスライブラリへのプロジェクト参照と、devEktronデータベースを指すApp.Config適切な接続文字列を含むファイルを追加しました。Ektron.DbConnection

簡単に言うと、問題のコードは次のとおりです。

テスト用のコンソールアプリ

static void Main(string[] args) {
    MyClass instance = new MyClass();
}

クラスライブラリ

public class MyClass {
    private Ektron.Cms.Framework.Core.Content.Content cAPI;

    public MyClass() {
        //** exception here **
        cAPI = new Ektron.Cms.Framework.Core.Content.Content();
    }
}

MyClassContent APIの新しいインスタンスを作成しようとすると、コンストラクターで例外がスローされます。例外は次のIncompatibleTypesExceptionとおりです。

Ektron.Cms.IRequestInfoProviderの依存関係を解決している間、提供されたタイプはEktron.Cms.IRequestInfoProviderと互換性がありません。

Ektron Devフォーラムには、この正確な問題について言及しているスレッドがここここにいくつかありますが、解決策は投稿されていません。クラスライブラリからFrameworkAPIを使用した経験のある人がこの状況を認識し、Ektronサポートに電話する前にアドバイスを提供してくれることを願っています。

4

3 に答える 3

0

コンソールアプリからWebライブラリを参照しようとすると、コーディングに長い時間がかかり、参照/gacの悪夢に見舞われることになると思います。私はそれができると確信しており、私自身はそれで限られた成功しか収めていません。ただし、コンソールアプリからEktron APIを呼び出そうとする場合は、ektronアプリでホストされるいくつかのWebサービスを作成して、APIで手間のかかる作業を行い、コンソールアプリにWebサービスを呼び出させることを強くお勧めします。これを行うことで、リクエストのスレッド化とあらゆる種類の自動化プロセスの実行を開始できます。

また、アップグレードする場合(8.6にはクールな新しいエディターがあります)、これによって依存関係の問題が発生することはなく、再コンパイルする必要があります。それらのWebサービスには下位互換性があります。

コードはありませんが、これがお役に立てば幸いです。明確にできるかどうか教えてください。

于 2012-07-25T05:01:27.500 に答える
0

それほど難しいことではありません。私はあなたが話しているのと同じようなクラスを作成しました。私の目標は、実際にはこのクラスライブラリを使用して、社内のCMSから持っているコンテンツをインポートすることでした。

しかし、使用する代わりに、Ektron.Cms.Framework.Core.Content.Content()私はを使用していEktron.Cms.API.Content.Content()ました。

あなたはそれを試してみることができるかもしれません。

于 2012-08-01T19:52:45.107 に答える
0

これはバージョン8.02では利用できませんでしたが、新しいバージョン(v8.6 +だと思います)には代替の「3層」のdllセットがあります。これらの「3層」dllは、WCFを使用してワークエリア/データベースと通信するため、HttpContextなどのWebに依存しません。ファイルはインストールディレクトリにあります。パスは次のようになります。 C:\Program Files (x86)\Ektron\CMS400v86\startersites\3TierMin\Content

コンテンツのインポートや変更などを行うためのコンソールアプリを作成するときに、これらのdllを使用して大成功を収めました。持参する必要のある追加の構成ファイルがいくつかあります。ワークエリアがあるEktronサイトである「中間層」のURLを指すAppSettingが必要だと思います。

于 2013-07-10T02:50:50.103 に答える