【问题标题】:Is Strong Name necessary in Sharepoint to use a WebPart?Sharepoint 中是否需要强名称才能使用 WebPart?
【发布时间】:2010-12-12 23:56:12
【问题描述】:

我创建了一个 Web 部件,并希望在 Sharepoint 中部署它。我想在 bin 中部署 Web 部件。

我没有为 dll(webpart 代码)创建一个强名称。在 bin 文件夹中部署 webpart 是否必须使用强名称?

我已参考此 msdn 链接来执行此操作。

http://technet.microsoft.com/en-us/library/cc263271.aspx

当我转到 WebPart 库并想要填充 Web 部件时,它没有出现在 WebPart 库中。

任何帮助将不胜感激。

【问题讨论】:

    标签: sharepoint web-parts strongname


    【解决方案1】:

    强名称不是 Sharepoint 开发的必需品,但它是您最简单的选择。

    你也可以使用WSPBuilder (SharePoint WSP tool)来部署你的webparts

    【讨论】:

    • 我想在应用程序的 bin 文件夹中部署 Web 部件。我不想使用 WSPBuilder。我正在处理和粘贴文件。此副本无效。我也会尝试 WSPBuilder。
    • 你也可以试试VSeWSS
    • 恕我直言,VSeWSS 在更大的 SharePoint 项目中不能很好地扩展
    【解决方案2】:

    我通常对我的程序集进行强命名,因为我不想以后发现我的程序集需要一个强名称,以防该程序集被以其他方式使用,而不是我最初的预期。

    我也遇到了一些与 Sharepoint 中的事件相关的问题,其中反射用于执行基于类和程序集信息(可能存储在数据库中)的函数,所以如果你稍后添加一个强名称,那么你必须更新使用旧事件的地方(例如在列表中),否则您的函数将不会受到影响。另一方面,如果您有一个强大的名称,那么使用web.config assembly redirect 很容易

    我喜欢你的想法,尽管将程序集放在 bin 中,这样你就可以使用 CAS,它为管理员提供了更多的控制权。

    要解决此问题,您可以先添加强名称并将程序集部署到 GAC,然后将 .webpart(或 .dwp)添加到 Web 部件库。如果可行,您可以尝试将程序集移动到 bin 文件夹,然后删除强名称。

    您可以考虑在功能中部署 webpart 并添加必要的代码以将 .webpart 文件动态添加到库中,这样您就不必担心文件,这可以通过使用功能接收器的代码来完成

    using (SPWeb web = site.OpenWeb())
    {
        web.AllowUnsafeUpdates = true;
        site.AllowUnsafeUpdates = true;    
        SPList list = web.Lists["Web Part Gallery"];
        SPFolder root = list.RootFolder;
        SPFile spFile = root.Files.Add("ContentEditor.dwp", s);
        spFile.Update();
    }
    

    或使用 caml xml

    <?xml version="1.0" encoding="utf-8"?>
    <Feature Id="8425EAF8-6GBE-4698-83C7-831CA8614D6D"
            Title="WebPart" 
            Description="Some description" 
            ImageUrl="GenericFeature.gif"
            Scope="Site" 
            xmlns="http://schemas.microsoft.com/sharepoint/">
        <ElementManifests>
            <ElementManifest Location="elements.xml" />
        </ElementManifests>
    </Feature>
    
    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
        <Module
            Name="WebPart"
            List="113"
            Url="_catalogs/wp"
            RootWebOnly="TRUE">
            <File Url="WebPart.dwp" Type="GhostableInLibrary" />
        </Module>
    </Elements>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-15
      • 2010-09-12
      • 2011-04-12
      相关资源
      最近更新 更多