代码之家  ›  专栏  ›  技术社区  ›  Anders

无法加载文件或程序集SharePoint 2007 Web部件

  •  0
  • Anders  · 技术社区  · 16 年前

    我在玩SharePoint2007。我有一台虚拟机(Win服务器2K3),上面运行着一个SharePointServer2007实例。我现在正在创建Web部件。我已经成功地创建了简单的,例如这个显示文本的:

    public class SimpleWebPart : WebPart
    {
        private string _displayText = "Hello World!";
        [WebBrowsable(true), Personalizable(true)]
        public string DisplayText
        {
            get { return _displayText; }
            set { _displayText = value; }
        }
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            writer.Write(_displayText);
        }
    }
    

    我把这个(和一些测试的)放在一个类库中,然后放到 _app_bin 文件夹位于 C:\Inetpub\wwwroot\wss\VirtualDirectories\80 .

    我添加的最新一个使用LINQ从我添加的表(不是SharePoint的一部分)中获取数据:

    public class SimpleDBWebPart : WebPart
    {
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            var oDB = new SPWebPartDataClassesDataContext();
            var oRes = oDB.GetAllFirstTable();
    
            foreach(var item in oRes)
            {
                writer.Write("<div>Item Name: {0}</div>",item.text);
                writer.Write("<div>Item ID: {0}</div>", item.id);
            }
        }
    }
    

    这个 GetAllFirstTable() 是一个从测试表中获取所有数据的存储过程:

    ALTER PROCEDURE dbo.GetAllFirstTable
    AS
        SELECT * FROM FirstTable
        RETURN
    

    当我尝试将Web部件添加到页面时,会出现以下错误:

    “SimpleDBWebPart”Web部件似乎导致了问题。无法加载文件或程序集“system.data.linq,version=3.5.0.0,culture=neutral,publickeytoken=b7a5c561934e089”或其依赖项之一。系统找不到指定的文件。

    我使用Reflector来确保在dll中包含程序集: alt text

    似乎是这样。是否必须将程序集添加到SharePoint网站的web.config文件中?或者我还缺什么?

    谢谢大家!

    1 回复  |  直到 16 年前
        1
  •  3
  •   Kusek    16 年前

    要使用Linq或.NET 3.5功能,您需要首先将SharePoint配置为在3.5模式下运行。 请参考这些链接了解如何执行此操作

    Simplest way

    AnotherOne