图片 1

.net运行时dll的查找路径顺序

在 Visual C# 中使用 HttpUtility 是无效的,即使添加了命名空间
System.Web,是因为需要在引用中添加 System.Web.dll。

本文将介绍创建ASP风格的WebPart。最简单的步骤为创建一个类继承自System.Web.UI.WebControls.WebPart类,覆盖(override)方法RenderContents。如果您想要继续为WebPart增加属性(property),可以使用在ASP.NET中相同的办法。如下面的代码显示了一个登录后的用户名。本例假设Visual
Studio 2005,Microsoft Office SharePoint
Server(MOSS)
2007和WSS
v3安装在同一台机器上。

D:项目路径.target项目名.BLL.pdb”。
已完成生成项目“D:项目路径项目名.BLL项目名.BLL.csproj”(默认目标)的操作。
ResolveAssemblyReferences:
主引用“System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL”。
C:WindowsMicrosoft.NETFrameworkv4.0.30319Microsoft.Common.targets(1605,5):
warning MSB3245: 未能解析此引用。未能找到程序集“System.Web.Http.WebHost,
Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35,
processorArchitecture=MSIL”。请检查磁盘上是否存在该程序集。
如果您的代码需要此引用,则可能出现编译错误。
[D:项目路径项目名.Web项目名.Web.csproj]
用于 SearchPath“{HintPathFromItem}”。
已考虑使用“..packagesMicrosoft.AspNet.WebApi.WebHost.5.2.3libnet45System.Web.Http.WebHost.dll”,但它不存在。
用于 SearchPath“{TargetFrameworkDirectory}”。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETFrameworkv4.5System.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETFrameworkv4.5System.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETFrameworkv4.5System.Web.Http.WebHost.exe”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETFrameworkv4.5FacadesSystem.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETFrameworkv4.5FacadesSystem.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFramework.NETFrameworkv4.5FacadesSystem.Web.Http.WebHost.exe”,但它不存在。
用于
SearchPath“{Registry:SoftwareMicrosoft.NETFramework,v4.5,AssemblyFoldersEx}”。
已考虑 AssemblyFoldersEx 位置。
用于 SearchPath“{AssemblyFolders}”。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFrameworkv3.0System.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFrameworkv3.0System.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFrameworkv3.0System.Web.Http.WebHost.exe”,但它不存在。
已考虑使用“C:Program Files (x86)Microsoft SQL
Server110SDKAssembliesSystem.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program Files (x86)Microsoft SQL
Server110SDKAssembliesSystem.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program Files (x86)Microsoft SQL
Server110SDKAssembliesSystem.Web.Http.WebHost.exe”,但它不存在。
已考虑使用“C:Program FilesIISMicrosoft Web Deploy
V3System.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program FilesIISMicrosoft Web Deploy
V3System.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program FilesIISMicrosoft Web Deploy
V3System.Web.Http.WebHost.exe”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFrameworkv3.5System.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFrameworkv3.5System.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program Files (x86)Reference
AssembliesMicrosoftFrameworkv3.5System.Web.Http.WebHost.exe”,但它不存在。
已考虑使用“C:Program Files
(x86)Microsoft.NETADOMD.NET110System.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“C:Program Files
(x86)Microsoft.NETADOMD.NET110System.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“C:Program Files
(x86)Microsoft.NETADOMD.NET110System.Web.Http.WebHost.exe”,但它不存在。
用于 SearchPath“{GAC}”。
已考虑使用“System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL”,但未在 GAC
中找到它。
用于 SearchPath“{RawFileName}”。
已考虑将“System.Web.Http.WebHost, Version=5.2.3.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35,
processorArchitecture=MSIL”视为文件名,但它不存在。
用于 SearchPath“D:项目路径.target”。
已考虑使用“D:项目路径.targetSystem.Web.Http.WebHost.winmd”,但它不存在。
已考虑使用“D:项目路径.targetSystem.Web.Http.WebHost.dll”,但它不存在。
已考虑使用“D:项目路径.targetSystem.Web.Http.WebHost.exe”,但它不存在。

可是没有 System.Web.dll 啊

  1、首先,打开Visual
Studio 2005.

请切换到浏览标签,在 C:WindowsMicrosoft.NETFrameworkv2.0.50727
目录下找到,其中 v2.0.50727 是你实际使用的 .NET 版本。

  我们将使用类库项目来创建ASP风格的WebPart。点击文件–〉新建项目。在项目类型中选择Visual
C#,模板中选类库(Class
Library)。在名称出输入TestWebParts。选择合适的保存路径。完成后点击确定。

图片 1

  2、添加对System.Web.dll的引用

  在Solution
Explorer中右键点击引用(References),选择添加引用

  选择.NET标签下的System.Web,将其添加到引用。

  3、添加必须的命名空间

  添加下面的命名空间

  using
System.Web;

  using
System.Web.UI;

  using
System.Web.UI.WebControls;

  using
System.Web.UI.WebControls.WebParts;

  4、继承自类System.Web
.UI.WebControls.WebPart

  将Class1.cs重命名为SimpleWebPart,并添加继承System.Web.UI.WebControls.WebParts来创建ASP风格的WebPart。代码如下:

  

  using
System;

  using
System.Collections.Generic;

  using
System.Text;

  using
System.Web.UI;

  using
System.Web.UI.WebControls.WebParts;

  namespace
TestWebParts

  {

  public
class SimpleWebPart:WebPart

  {

  protected
override void RenderContents(HtmlTextWriter writer)

  {

  writer.Write(this.Context.User.Identity.Name);

  }

  }

  }

  

  我们必须重写RenderContents方法。如上所示。RenderContents方法将根据其参数writer所指定的内容来展示WebPart。writer参数是一个HtmlTextWriter,用于描述将要显示到客户端浏览器中的HTML内容。

  如果我们的WebPart中包含有子控件,我们还需要在这里调用基类的RenderContents方法或者在我们想要显示子控件的地方调用基类的RenderChildren方法,将子控件的内容输出到writer。

  上面的WebPart定义说明该代码并不依赖于Microsoft.SharePoint.dll。所以它既可以被用在ASP.NET应用程序中,也可以用在WSS
v3站点。不过在大多数情况下,我们还是要在自定义WebPart中添加对Microsoft.SharePoint.dll的引用,因为这样就可以使用WSS
v3提供的对象模型了。

  除支持ASP风格的WebPart外,WSS
v3同时被设计为可以支持WSS
v2环境下创建的WebPart。旧的WSS风格WebPart继承自Microsoft.SharePoint.dll中的WebPart基类,它是定义在Microsoft.SharePoint.WebPartPages命名空间下的。

  在WSS
v2中的Microsoft.SharePoint.dll的WebPart类是继承自ASP.NET的Control类。如下图所示。

  但是,同时我们也可以看到,WSS
v3中Microsoft.SharePoint.dll的WebPart类被修改为继承自ASP.NET的WebPart类。这种将一个组件的基类改为较新的版本的技术(versioning
technique)就是rebasing。对Microsoft.SharePoint.dll中的WebPart类的rebasing是使WSS
v3环境支持老的WSS风格WebPart的关键。

  如果查看一个WSS
v3应用程序里的标准的Web.config文件,我们将发现里面包括了重新定向WSS
v2的Microsoft.SharePoint.dll到WSS
v3版的Microsoft.SharePoint.dll的配置元素。这个重定向与上面所说的rebasing配合起来共同保障了WSS
v2环境下所写的WebPart的Dll运行在WSS
v3环境中,而不必做任何的改动。

  因此,如果我们想要将一个WSS
v2的WebPart项目转移到Visual
Studio 2005中,我们可以使用与从前相同的方式继续扩充我们的代码,还是可以继续运行。同时,在转移到Visual
Studio 2005时,我们还可以选择将项目中对Microsoft.SharePoint.dll的引用切换到WSS
v3的版本。这样,该项目的WebPart就会转到上图右侧的WSS
v3体系中。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注