0

SiteFinity (C#) アプリを Web サイトから WebApplicationProject に変換しました。それはすべてうまくいきます..例外

以前は、App_Code に、基本クラス WebModule から継承する MaterialsModule というクラスがありました。

問題: SiteFinity はこのクラスを自動的に認識しなくなりました

名前空間をクラスに追加して、コード ビハインド here に追加しようとしました (これは、この MaterialModule ページが表示されることを期待しているページです)

http://localhost/fmwebapp1/Sitefinity/Admin/Modules.aspx

public class MaterialsModule : WebModule
{
    public MaterialsModule()
    {
    }

    public override IList<Telerik.Web.IToolboxItem> Controls
    {
        get
        {
            return new List<IToolboxItem>(
                new ToolboxItem[]
                {
                    new CmsToolboxItem("~/Custom/Modules/Materials/Frontend/Controls/MaterialsList.ascx", "Materials", "Materials List", "Displays list of all materials")
                });
        } 
    }

    public override string Description
    {
        get { return "This is the Materials Module"; }
    }

    public override string Name
    {
        get { return "Materials"; }
    }

    public override string Title
    {
        get { return "Materials"; }
    }

    public override System.Web.UI.Control CreateControlPanel(System.Web.UI.TemplateControl parent)
    {
        return new MaterialsControlPanel();
    }
4

2 に答える 2

0

Webサイトプロジェクトでは、〜/binフォルダー内のすべてのアセンブリが自動的にGACに追加されます。

Webアプリケーションプロジェクトでは、GACに含まれるアセンブリを明示的に定義する必要があります。

-

Sitefinityのアセンブリ参照をプロジェクトに追加することで、これを修正できると思います。

これをする:

  1. ソリューションエクスプローラーでプロジェクトを右クリックします
  2. [参照の追加]をクリックします
  3. アセンブリを参照する
  4. Sitefinity〜/binフォルダーに移動します
  5. SitefinityDLLファイルへの参照を追加します

その後、WebModuleは定義されたクラスとして認識されます。

-

朗報ですが、Sitefinity 4.0(今年後半)はデフォルトでWebアプリケーションプロジェクトをサポートしています。

于 2010-08-17T17:03:26.020 に答える
0

ファイルを削除してpage.aspx.designer.vbから、右クリックしpage.aspxて [Web アプリケーションに変換] を選択し、デザイナー ファイルを再作成してみてください。もちろん、これは問題がそのファイルにあることを前提としています。

于 2010-08-10T21:55:21.683 に答える