Domanda

Sto riscontrando un problema con i siti Web di Visual Studio 2008 e SharePoint / MOSS 2007. In precedenza avevamo 2 progetti di applicazioni Web ospitati sotto la nostra struttura di SharePoint, ma a causa della natura dei file di progetto e del controllo del codice sorgente, stava creando problemi nel nostro ambiente di sviluppo del team. Ho deciso di passare da applicazioni Web a siti Web per rimuovere il file di progetto fino a quando non ho tempo di cambiare il controllo del codice sorgente in TFS. Tutto funziona bene, tuttavia quando provo a creare manualmente uno dei siti Web viene visualizzato il seguente errore:

Questo generatore di espressioni richiede l'esecuzione di SPContext

Ora questo non è un vero problema, a causa della natura dei siti Web e del modo in cui vengono compilati in base alle necessità al momento del caricamento. Ma è un problema per il mio team di sviluppo in quanto vorremmo davvero essere in grado di ottenere build di successo per vari motivi.

Il problema si verifica attraverso l'uso di un generatore di espressioni personalizzato che utilizziamo, che funziona ancora bene in fase di esecuzione. È solo durante la compilazione che ci dà l'errore.

Qualsiasi pensiero o idea su come superare questo problema sarebbe molto apprezzato.

Saluti,

Brendan

Nessuna soluzione corretta

Altri suggerimenti

SPContext.Current viene utilizzato da molte applicazioni di SharePoint per determinare l'attuale contesto di SharePoint in cui operano. Con le modifiche apportate ciò ovviamente non è più possibile nel processo di compilazione.

Un'opzione è quella di incorporare una protezione in cui se non è possibile trovare un SPContext valido, questo viene creato con nuovi oggetti SPSite / SPWeb come necessario per fornire quel contesto. Ciò potrebbe richiedere qualche rearchitecture a seconda di come è stato progettato il generatore di espressioni, in particolare perché ora è necessario disporre correttamente degli oggetti SPSite e SPWeb creati (cosa non necessaria quando si utilizza SPContext).

Un'altra opzione è quella di utilizzare un framework di derisione come Typemock Isolator . Questo deriderà / falsificherà un SPContext. Tuttavia, credo che dovresti cercare nuovamente il codice per usarlo. Tra i lati positivi, è possibile utilizzare solo SPContext.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top