Question

J'ai projet contrôles utilisateur (UI) et je suis en utilisant AJAX Toolkit Extension avec eux. Le dll de boîte à outils d'extension AJAX est référencé dans le projet. Le projet compile avec succès.

Un autre projet en même solution qui est projet WSPBuilder (Déployer). Lorsque vous construisez l'interface utilisateur projet, tous les contrôles seront copie deploy du projet 12\TEMPLATE\CONTROLTEMPLATES et un projet de dll interface utilisateur a également copié dans le dossier GAC. (Pour la copie, je utilise les événements post-construction)

Ensuite, construire Déployer projet à l'aide WSPBuilder Construire et déployer. Je reçois un message d'erreur:

An error occurred during the processing of . Unknown server tag 'asp:ScriptManager'.

S'il vous plaît, ne dites pas que j'ai de modifier manuellement le web.config pour ajouter et marquer l'extension ajax comme un contrôle de sécurité. Je ne vais pas le faire.

une meilleure solution?

P.S: J'utilise WSPBuilder, STSDEV et VSeWSS.

EDIT

Merci à Chris. Le problème est:

  

Je pense que dans ce cas, il est autre   éléments web.config que vous êtes   manquant - les déclarations d'AJAX.   Entre autres choses, vous avez besoin   suivant dans votre web.config si .Net   sait comment trouver le ScriptManager   classe:

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

Mais ce problème va un peu bizarre à mes côtés. Je devais ensemble enableSessionState à true de tag pages sous system.web et décommenter les éléments suivants:

<add name=”Session” type=”System.Web.SessionState.SessionStateModule” />

Je pensais que mettre AjaxExtension.dll dans GAC peut résoudre ce problème. J'évitais d'écrire une fonction pour modifier web.config. Puis-je faire cela aussi dans manifest.xml?

S'il vous plaît, suggérer!

Était-ce utile?

La solution

L'erreur que vous voyez ne semble pas être lié à l'entrée SafeControls. Si tel était le cas, vous verriez un message disant « Impossible d'ajouter une partie Web sélectionnée (s). Un composant WebPart ou contrôle de formulaire Web sur cette page ne peut pas être le type est affiché ou importé. Enregistré comme sûr. »

Dans ce cas, je pense qu'il est d'autres éléments dans web.config qui vous manque - les déclarations d'AJAX. Entre autres choses , vous avez besoin d'éléments suivants dans votre web.config si .Net sait comment trouver la classe ScriptManager:

<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

Vous avez deux options:

Les détails des changements requis web.config sont détaillé ici dans le blog de Mike Ammerlaan.

Quelle que soit la route que vous prenez, vérifiez la version d'AJAX que vous utilisez contre les guides / échantillons que vous utilisez.

Autres conseils

Un commentaire sur le site WSPBuilder.

  

Beau travail! Ajout d'DLLs tiers fonctionnait très bien quand je déployé AJAX et l'AJAX Control Toolkit. J'ai créé une fonction pour faire tous les changements web.config et utilisé le dossier GAC \ Référence pour inclure le contrôle Toolkit DLL. A travaillé grande même avec plusieurs serveurs de la batterie. C'était un épargnant de vie!

inclure le dll dans votre projet WSPBuilder pour l'obtenir inclus, puis créer une fonction pour modifier web.config. Voir ce post pour obtenir des informations sur la modification de web.config avec une fonction.

Tout d'abord, vous devez ajouter l'assemblage que vous souhaitez déployer dans le projet VS. Par exemple, vous pouvez créer un « libs » dossier pour stocker tous les ensembles externes dont vous aurez besoin dans votre site d'équipe.

Ensuite, vous devez éditer le fichier manifest.xml de votre site Définition de l'équipe. Vous pouvez trouver ce fichier dans le dossier « pkg » dans votre projet. Sachez que le dossier pkg ne sera disponible que si vous avez au moins déployé le temps d'une solution.

OK, maintenant vous devez ajouter un nouvel élément enfant <Assembly> à l'élément <Assemblies> dans le fichier manifest.xml de votre solution Définition de l'équipe. Avec le « DeploymentTarget » Attribute vous pouvez définir si l'ensemble doit être déployé dans le GAC ou dans le dossier bin de l'application Web.

L'exemple suivant montre comment l'élément de <Assemblies> ressemble si vous voulez ajouter le « TeamSiteDefinition1.dll » au GAC et d'ajouter le « TestSolution.dll » dans le dossier bin. Si vous avez besoin d'une entrée de commande de sécurité pour votre montage, vous pouvez ajouter celui-ci aussi.

<Assemblies>
    <Assembly Location="TeamSiteDefinition1.dll" DeploymentTarget="GlobalAssemblyCache" />
    <Assembly Location="TestSolution.dll" DeploymentTarget="WebApplication">
       <SafeControls>
          <SafeControl ..... />
       </SafeControls>
    </Assembly>
</Assemblies>
Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top