2009-09-16 4 views
1

J'ai un problème avec les sites Web de Visual Studio 2008 et SharePoint/MOSS 2007. Nous avions auparavant 2 projets d'application Web logés sous notre structure SharePoint, mais en raison de la nature des fichiers de projet et du contrôle de source, cela créait des problèmes dans notre environnement de développement d'équipe. J'ai décidé de passer d'applications Web à des sites Web pour supprimer le fichier de projet jusqu'à ce que j'ai le temps de changer notre contrôle de source à TFS. Tout fonctionne très bien, mais quand je tente de construire manuellement l'un des sites que je reçois l'erreur suivante:Expression Builder nécessite SPContext pour s'exécuter

Ce générateur d'expression nécessite SPContext pour exécuter

Maintenant, ce n'est pas un vrai problème, en raison de la nature des sites et comment ils compilent au besoin lors du chargement. Mais c'est un problème pour mon équipe de développement car nous aimerions vraiment pouvoir obtenir des builds réussis pour diverses raisons.

Le problème se produit à l'aide d'un générateur d'expression personnalisé que nous utilisons, qui fonctionne toujours correctement lors de l'exécution. Ce n'est que lors de la compilation que cela nous donne l'erreur.

Toute idée ou idée sur la façon dont ce problème peut être surmonté serait grandement appréciée.

Cheers,

Brendan

Répondre

0

SPContext.Current est utilisé par de nombreuses applications SharePoint pour déterminer le contexte de SharePoint actuel, ils fonctionnent. Avec les modifications apportées ceci est évidemment plus possible dans le processus de construction.

Une option consiste à créer une protection où, si un SPContext valide est introuvable, il est créé avec les nouveaux objets SPSite/SPWeb nécessaires pour fournir ce contexte. Cela peut nécessiter une certaine architecture de recherche en fonction de la conception du générateur d'expressions, en particulier parce que vous devez maintenant disposer correctement des objets SPSite et SPWeb créés (ce qui n'est pas obligatoire lors de l'utilisation de SPContext).

Une autre option consiste à utiliser un cadre de simulation tel que Typemock Isolator. Cela simulera/simulera un SPContext. Cependant, vous devrez réorganiser le code pour l'utiliser aussi, je crois. Sur le plan positif, vous pouvez continuer à utiliser SPContext uniquement.

+0

Le générateur d'expression à l'origine du problème se trouve dans un autre assembly qui ne génère aucun problème. Il semble juste que Visual Studio manque quelque chose de sorte que lorsque l'assembly est une référence du site Web, il est en quelque sorte incapable de trouver le SPContext requis à la compilation. Comme je l'ai dit, à l'exécution, tout va bien. Est-ce juste un peu frustrant, c'est tout. –

Questions connexes