2010-09-14 39 views
15

Ho recentemente aggiornato la mia installazione di BlogEngine.Net a 1.6 e .Net 4.0, tuttavia, non ho creato BlogEngine.Core quando ho eseguito l'aggiornamento. Tuttavia, quando provo a creare il progetto BlogEngine.Core ora, la compilazione fallisce perché non può caricare i simboli per (System.Web.Security). MembershipProvider. Credo che questo sia un problema .Net/C#/utente piuttosto che un problema di BlogEngine..Net 4.0 System.Web.Security.MembershipProvider riferimento ambiguo?

Il progetto ha un riferimento alla libreria System.Web e il file di classe (che eredita da MembershipProvider) include un Utilizzo per System.Web.Security. Con ReSharper abilitato, IntelliSense indica la confusione su quale provider di appartenenze utilizzare dando una scelta tra due librerie con lo stesso nome (System.Web.Security).

Cosa potrebbe aver causato questo riferimento ambiguo? Come posso determinare a quali due librerie viene fatto riferimento? Niente di ovvio indica un riferimento duplicato. Poi di nuovo, l'ovvio è davvero ovvio una volta che lo vedi.

risposta

37

Problema risolto. Il namespace System.Web.Security è un membro di System.Web, tuttavia è anche membro di System.Web.ApplicationServices. Il progetto aveva un riferimento a System.Web e un'istruzione using riferiva System.Web.Security, quindi IntelliSense non lanciava un flag quando specificava la classe. Tuttavia, al progetto mancava un riferimento a System.Web.ApplicationServices. Il progetto aveva un riferimento alla classe, ma non poteva caricare la classe perché mancava l'assembly contenente (... ApplicationServices).

+0

grazie! mi stava facendo impazzire ... –

+0

Grazie ... stava avendo lo stesso problema ... – Tracker1

+3

Come nota aggiuntiva, ho dovuto rimuovere il riferimento a System.Web. Aggiungere System.Web.ApplicationServices e quindi aggiungere di nuovo System.Web. –

3

Ho appena affrontato questo stesso problema durante la creazione di un provider di appartenenza personalizzato per la mia applicazione web. È necessario rimuovere il riferimento a System.Web e aggiungere i seguenti riferimenti. - System.Web.ApplicationServices - System.Configuration