我已经使用了用户控制项目(UI),并且正在使用AJAX扩展工具包。这 dll 项目中引用了Ajax扩展工具包。该项目正在成功编译。

在同一解决方案下的另一个项目是WSPBuilder项目(部署)。当您构建UI项目时,所有控件将复制以部署项目目录 12\TEMPLATE\CONTROLTEMPLATESdll UI项目也复制到 GAC 文件夹。 (用于复制,正在使用后构建事件)

然后,使用WSPBuilder构建和部署构建部署项目。我收到错误消息:

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

请不要说我要手动修改web.config以添加并标记Ajax扩展名为安全控件。我不会那样做。

有更好的解决方案吗?

PS:我正在使用WSPBuilder,STSDEV和VSEWSS。

编辑

感谢克里斯。问题是:

在这种情况下,我认为您缺少的是Web.config中的其他元素 - AJAX声明。除其他方面,您需要Web.config So .Net中的以下内容知道如何找到ScriptManager类:

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

但是这个问题在我身边有些怪异。我不得不设置 enableSessionStatetruepages 标签下 system.web 和删除以下内容:

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

我认为将ajaxextension.dll放入GAC中可以解决此问题。我避免写一个用于修改web.config的功能。我可以在subest.xml中执行此操作吗?

请建议!

有帮助吗?

解决方案

您看到的错误似乎与SafeControls条目无关。如果是这样,您会看到一条消息,说“无法添加选定的Web部件。无法显示或导入此页面上的Web零件或Web表单控件。该类型未注册为安全。”

在这种情况下,我认为您缺少的是Web.config中的其他元素 - AJAX声明。 除其他事项, ,您需要Web.config So .Net中的以下内容知道如何找到ScriptManager类:

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

您有几个选择:

  • 在流行中使用该功能 SharePoint功能CodePlex项目 这将使Web.config更改
  • 编写自己的代码以使用SpwebConfigModification更改Web.config。

Web.config所需更改的全部详细信息是 在Mike Ammerlaan的博客中详细介绍.

无论您采用哪种路线,请检查您使用的Ajax版本,以根据您使用的指南/示例使用。

其他提示

WSPBuilder网站的评论。

做得好!当我部署Ajax和Ajax控制工具包时,添加第三方DLLS效果很好。我创建了一个功能来完成所有Web.config更改,并使用GAC 参考文件夹来包括控制工具包DLL。即使在农场中有多台服务器,也可以很好地工作。那是救生员!

因此,在WSPBuilder项目中包含DLL以将其包含在内,然后创建一个功能来修改Web.config。看 这个帖子 有关使用功能修改Web.config的信息。

首先,您必须添加要部署到VS项目的程序集。例如,您可以创建一个“ libs”文件夹来存储您在团队站点中所需的所有外部组件。

然后,您必须编辑团队网站定义的subtest.xml文件。您可以在项目中的“ PKG”文件夹中找到此文件。请注意,仅当您至少一次部署解决方案时,PKG文件夹才能可用。

好,现在您必须添加一个新的 <Assembly> 儿童元素 <Assemblies> 您的团队定义解决方案的subtest.xml文件中的元素。使用“ deploymentTarget”属性,您可以定义程序集应部署到GAC或Web应用程序的BIN文件夹。

以下示例显示了如何 <Assemblies> 元素看起来好像要在GAC中添加“ TeamSitedEfinition1.dll”,并将“ TestSolution.dll”添加到BIN文件夹中。如果您需要安全控制条目,则也可以添加此。

<Assemblies>
    <Assembly Location="TeamSiteDefinition1.dll" DeploymentTarget="GlobalAssemblyCache" />
    <Assembly Location="TestSolution.dll" DeploymentTarget="WebApplication">
       <SafeControls>
          <SafeControl ..... />
       </SafeControls>
    </Assembly>
</Assemblies>
许可以下: CC-BY-SA归因
scroll top