1

私のソリューションはコンパイルされません。プロジェクトをコンパイルしようとすると、エラーメッセージが表示されます。

エラー2タイプまたは名前空間の名前「セキュリティ」が名前空間「ベース」に存在しません(アセンブリ参照がありませんか?)

ただし、プロジェクトを参照していて、それが正しい名前空間であるため、混乱します。これがソリューションのセットアップです

ソリューションベース-Base.Domain-Base.Security-Base.Tests-Base.WebUI

Base.Securityには、次のようなカスタムロールプロバイダーファイルがあります。

namespace Base.Security.Providers
{
    public class EFRoleProvider : System.Web.Security.RoleProvider
    {
        //code here
    }
}

Base.TestsとBase.TestsでBase.Securityを参照しましたが、次のファイルがあります(エラーが発生します)。

using Base.Security.Providers;

namespace Base.Tests
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = new EFRoleProvider();
            //more stuffs
        }
    }
}

わかりません。Base.TestsからBase.Securityタイプにアクセスできないのはなぜですか。

4

1 に答える 1

1

プロジェクトが同じ.NETバージョンに対して構築されていることを確認してください。.NET4.0プロジェクトから.NET3.5プロジェクトへの参照を追加するときに、この問題が発生しました。

.NETバージョンを確認/変更するには、プロジェクトを右クリックしてプロパティを選択し、[アプリケーション]タブで[ターゲットフレームワーク]が各プロジェクトで同一であることを確認します。

コードは正しいように見えます。これは、参照の設定方法に問題があります。

于 2012-11-20T21:15:02.717 に答える