无法加载文件或程序集Sharepoint 2007 WebPart

时间:2009-08-05 17:08:34

标签: c# linq sharepoint web-parts

我正在玩Sharepoint 2007.我有一个虚拟机(win server 2k3),上面运行了一个sharepoint server 2007实例。我现在正致力于创建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

当我尝试将WebPart添加到页面时,出现此错误:

  

“SimpleDBWebPart”Web部件似乎导致了问题。无法加载文件或程序集'System.Data.Linq,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其依赖项之一。系统找不到指定的文件。

我使用Reflector来确保我在DLL中有程序集: alt text

情况似乎如此。我是否必须将程序集添加到sharepoint站点的web.config文件中?或者还有其他我想念的东西?

谢谢你们!

1 个答案:

答案 0 :(得分:3)

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

Simplest way

AnotherOne