<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Sunmoonfire's artistic matrix</title><subtitle type="text">Open mind, keep it simple, and enjoy changes</subtitle><id>http://feed.cnblogs.com/blog/u/21605/rss</id><updated>2012-05-27T04:29:49Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/21605/rss"/><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/05/27/2519974.html</id><title type="text">打SharePoint 2010 SP1后访问用户配置文件同步服务应用程序出错的解决办法</title><summary type="text">打完SharePoint 2010 SP1补丁后，发现访问服务应用程序里的User Profile Service 应用程序 User Profile Service Application 也就是（/_layouts/ManageUserProfileServiceApplication.aspx?ApplicationID=xxxxxx）时“发生意外错误”。查看LOGS后发现：UserProfileServiceImportStatisticsWebPart:LoadControl failed, Exception: System.MissingMethodException: 找不到方</summary><published>2012-05-27T04:04:00Z</published><updated>2012-05-27T04:04:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/27/2519974.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/27/2519974.html"/><content type="html">&lt;p&gt;打完SharePoint 2010 SP1补丁后，发现访问服务应用程序里的User Profile Service 应用程序 User Profile Service Application 也就是（/_layouts/ManageUserProfileServiceApplication.aspx?ApplicationID=xxxxxx）时&amp;ldquo;发生意外错误&amp;rdquo;。查看LOGS后发现：&lt;/p&gt;&lt;p&gt;UserProfileServiceImportStatisticsWebPart:LoadControl failed, Exception: System.MissingMethodException: 找不到方法:&amp;ldquo;Boolean Microsoft.Office.Server.UserProfiles.UserProfileImportJob.get_IsSynchronizationRunning()&amp;rdquo;。&lt;/p&gt;&lt;p&gt;在msdn SharePoint 2010论坛上找到了解决办法，原来是需要打&lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbln=en-us&amp;amp;kbnum=2553048" target="_blank"&gt;Auguet 2010 CU&lt;/a&gt;补丁。&lt;/p&gt;&lt;p&gt;有关该补丁的详细信息，参考&lt;a href="http://blogs.technet.com/b/stefan_gossner/archive/2011/09/07/august-2011-cu-for-sharepoint-2010-has-been-released.aspx" target="_blank"&gt;这里&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;打完补丁重新启动计算机，再次打开User Profile Service Application，终于可以访问了。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012052712290589.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;参考资料&lt;/p&gt;&lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en/sharepoint2010general/thread/b5628769-98e2-4074-86f7-f8c630ee5a79" target="_blank"&gt;&lt;span&gt;Problens after upgrade Sharepoint 2010 SP 1&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2519974.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/27/2519974.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482069.html</id><title type="text">使用[本人]创建视图筛选时的一个问题和解答</title><summary type="text">问题的提出是基于这样一个需求。比如一个请假条列表，上面跑了一个自己的审批工作流。有权进行审批的经理有多个。而且这个审批工作流也包含了多步审批，每一步都可能有不同的审批人。现在需要创建一个视图，某个经理审核后还想看到自己审核过的请假条。解决的思路是创建一个字段记录每个人审核的人名，之后通过这个字段加一个“ 包含 ”的筛选条件来查看视图。首先，尝试了使用单行文本类型的栏来保存审批人。当我们在这个栏上添加了一个“包含”[本人]的筛选条件后，视图无法保存，验证通不过，提示“筛选值不是有效的文本字符串”：看来[本人]这个函数无法用在单行文本上。由此，就想到换成多行文本。一试果然能够通过。但是添加测试数据</summary><published>2012-05-03T18:45:00Z</published><updated>2012-05-03T18:45:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482069.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482069.html"/><content type="html">&lt;p&gt;问题的提出是基于这样一个需求。比如一个请假条列表，上面跑了一个自己的审批工作流。有权进行审批的经理有多个。而且这个审批工作流也包含了多步审批，每一步都可能有不同的审批人。现在需要创建一个视图，某个经理审核后还想看到自己审核过的请假条。解决的思路是创建一个字段记录每个人审核的人名，之后通过这个字段加一个&amp;ldquo; 包含 &amp;rdquo;的筛选条件来查看视图。&lt;/p&gt;&lt;p&gt;首先，尝试了使用单行文本类型的栏来保存审批人。当我们在这个栏上添加了一个&amp;ldquo;包含&amp;rdquo;[本人]的筛选条件后，视图无法保存，验证通不过，提示&amp;ldquo;筛选值不是有效的文本字符串&amp;rdquo;：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012050402170817.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;看来[本人]这个函数无法用在单行文本上。&lt;/p&gt;&lt;p&gt;由此，就想到换成多行文本。一试果然能够通过。但是添加测试数据后，发现并不能进行预想的筛选。SPD打开该视图查看了一下SharePoint自动生成的CAML，如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Query&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;OrderBy&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Title"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Ascending&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="FALSE"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;OrderBy&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Where&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Contains&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="_x5ba1__x6279__x4eba_"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Value &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Integer"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;                &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;UserID &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Integer"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Contains&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Where&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Query&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;原来，是把UserID直接拿过来做了&amp;ldquo;包含&amp;rdquo;操作。随便找了一个UserID，作为测试数据填写到审批人这一栏里，发现筛选正常。比如&amp;ldquo;张三&amp;rdquo;对应的ID是13。实际上判断的是包含13的。虽然筛选表面上是成功的，但是实际上这样会造成结果的重叠。（如还有一个UserID是113）。虽然可以通过在 ID号左右添加分割符（比如括号）的方式解决（SPD工作流里可以从工作流上下文里得到当前用户，并返回用户ID），但是CAML查询却不支持&amp;lt;Value Type="Integer"&amp;gt;（&amp;lt;UserID Type="Integer"/&amp;gt;）&amp;lt;/Value&amp;gt;这样的写法。除非是自己写一个WebPart，取到当前用户的UserId后再拼Value字符串。这样无疑增加了工作量。&lt;/p&gt;&lt;p&gt;其实，SharePoint中有一个更简单的方法能够解决这个问题。就是&amp;ldquo;用户或用户组&amp;rdquo;字段类型。&lt;/p&gt;&lt;p&gt;1、创建这个字段值时，使用&amp;ldquo;用户或用户组&amp;rdquo;类型。允许多选。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012050402325772.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;2、视图的&amp;ldquo;包含&amp;rdquo;关系就可以直接用&amp;ldquo;等于&amp;rdquo;来替代。&lt;/p&gt;&lt;p&gt;&lt;a href="http://pic002.cnblogs.com/images/2012/18046/2012050402333735.png" target="_blank"&gt;&lt;img class="shadow" src="http://pic002.cnblogs.com/images/2012/18046/2012050402333735.png" alt="" width="680" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;3、在工作流更新列表项时，这个字段的值采用在原有值基础上加一个分号，然后再加上当前用户的方式进行保存。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012050402340681.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;这样，组织出来的视图就能显示包含当前用户的所有审批。并且审批人可以是多个人。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012050402405980.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;参考资料&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.nothingbutsharepoint.com/sites/eusp/Pages/sharepoint-me-easy-item-level-security.aspx" target="_blank"&gt;SharePoint - [Me] = Easy Item Level Security &lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2482069.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482069.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482047.html</id><title type="text">&amp;quot;缺少服务器端相关性&amp;quot;的内容定位</title><summary type="text">SharePoint 运行状况分析器已检测到一些值得关注的关键问题。其中一条为：作为管理员，我如何能知道哪些地方用到了这个WebPart呢？ Google搜索到2条很有用的途径。1、通过stsadm来查找webpart的引用状况。stsadm -o enumallwebs -includewebparts &gt;c:\temp\somelog.txt在返回的xml结果中，可以看到每个web下的webpart节点。&lt;Databases&gt; &lt;Database 。。。&gt; &lt;Site Id="76754f86-f517-4d46-8331-5837867840</summary><published>2012-05-03T17:14:00Z</published><updated>2012-05-03T17:14:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482047.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482047.html"/><content type="html">&lt;p&gt;SharePoint 运行状况分析器已检测到一些值得关注的关键问题。其中一条为：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012050400243284.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;作为管理员，我如何能知道哪些地方用到了这个WebPart呢？ Google搜索到2条很有用的途径。&lt;/p&gt;&lt;p&gt;1、通过stsadm来查找webpart的引用状况。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;stsadm -o enumallwebs -includewebparts &amp;gt;c:\temp\somelog.txt&lt;/div&gt;&lt;p&gt;在返回的xml结果中，可以看到每个web下的webpart节点。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Databases&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Database &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;。。。&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Site &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="76754f86-f517-4d46-8331-58378678401f"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; 。。。&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Webs &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="50"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Web &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ef027756-f112-4765-a5b8-d5a13c1b7417"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; LanguageId&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="2052"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; TemplateName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="STS#0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; TemplateId&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="1"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;          &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;WebParts&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;WebPart &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="baf5274e-a800-8dc3-96d0-0003d9405663"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Count&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="20"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Status&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Missing SafeControls entry"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Microsoft.SharePoint.WebPartPages.ListViewWebPart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Assembly&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;            &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;WebPart &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;。。。。&lt;br/&gt;          &amp;lt;/WebParts&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Web&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br/&gt;。。。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;从中就可以找到一些错误的原因。即使出现在藏的很深的一个子网站里，都可以找到。&lt;/p&gt;&lt;p&gt;2、直接通过数据库来查找。用来检查错误的timerjob实际上在对应的内容数据库上运行了一个这样的查询：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;SELECT&lt;/span&gt; tp_WebPartTypeId, &lt;span style="color: #ff00ff;"&gt;COUNT&lt;/span&gt;(&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;), tp_Assembly, tp_Class&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000;"&gt; AllWebParts (NOLOCK)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;WHERE&lt;/span&gt; tp_WebPartTypeId &lt;span style="color: #0000ff;"&gt;IS&lt;/span&gt; &lt;span style="color: #808080;"&gt;NOT&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;NULL&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;BY&lt;/span&gt; tp_WebPartTypeId, tp_Assembly, tp_Class&lt;/div&gt;&lt;p&gt;通过错误信息提供给我们的WebPartTypeId，进行如下的查询：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color: #808080;"&gt;*&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #0000ff;"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000;"&gt; AllWebParts&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;WHERE&lt;/span&gt; tp_WebPartTypeId &lt;span style="color: #808080;"&gt;=&lt;/span&gt; &lt;span style="color: #ff0000;"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;b82a8e9d-8706-3252-0a3b-ba19bf65e250&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;'&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;结果中，找到了我要的SiteId。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012050401022969.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;该表还有一些其他的信息，可供我们排错。常用的几个表以及关系如下：&lt;/p&gt;&lt;p&gt;SELECT Webs.FullUrl, Webs.Title, AllDocs.DirName, AllDocs.LeafName&lt;/p&gt;&lt;p&gt;FROM AllDocs, Sites, AllWebParts, Webs&lt;/p&gt;&lt;p&gt;WHERE Webs.Id = Sites.RootWebId AND AllDocs.Id = AllWebParts.tp_PageUrlID&lt;/p&gt;&lt;p&gt;&amp;nbsp;AND Sites.Id = AllDocs.SiteId&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;参考资料&lt;/p&gt;&lt;p&gt;&lt;a href="http://blogs.architectingconnectedsystems.com/blogs/cjg/archive/2009/12/09/Missing-Server-Side-Dependencies-_2D00_-8d6034c4_2D00_a416_2D00_e535_2D00_281a_2D00_6b714894e1aa.aspx" target="_blank"&gt;Missing Server Side Dependencies - 8d6034c4-a416-e535-281a-6b714894e1aa&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/2875428/how-to-find-missing-web-part" target="_blank"&gt;How to find missing web part?&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2482047.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/05/04/2482047.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/04/09/2438310.html</id><title type="text">SharePoint 2010开发工具图解系列：Visual Studio 2010创建事件接收器</title><summary type="text">在此次练习中，您将创建一个错误页面，以便在用户遇到错误时可被重定向到该页面。取消事件已在WSS 3.0中被引入，但取消并将用户重定向到一个错误页面是WSS“14”新增的功能。首先，要创建一个事件接收器，用于将当前网站中的子网站数量限制为2个。这需要为当前项目添加一个新的项目条目。在解决方案资源管理器工具窗口中，右击CustomErrorPage项目，并选择添加» 新建项。在SharePoint » 2010模板列表中选择事件接收器，并将其命名为MaxSubSitesReceiver...</summary><published>2012-04-08T16:08:00Z</published><updated>2012-04-08T16:08:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/09/2438310.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/09/2438310.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;练习 ：创建用于响应事件错误的URL重定向&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您将创建一个错误页面，以便在用户遇到错误时可被重定向到该页面。取消事件已在WSS 3.0中被引入，但取消并将用户重定向到一个错误页面是WSS&amp;ldquo;14&amp;rdquo;新增的功能。&lt;/p&gt;&lt;/div&gt;&lt;p&gt;新建一个空白的SharePoint项目。启动Visual Studio 2010，选择&lt;em&gt;文件&lt;/em&gt;&lt;em&gt;&amp;raquo; &lt;/em&gt;&lt;em&gt;新建项目&lt;/em&gt;，并按如下操作步骤新建一个空白项目。&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet" style="margin-left: 60px;"&gt;&lt;strong&gt;项目类型: &lt;/strong&gt;&lt;strong&gt;已安装的模板&amp;raquo; SharePoint &amp;raquo; 2010&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;模板: &lt;/strong&gt;&lt;strong&gt;空白SharePoint&lt;/strong&gt;&lt;strong&gt;项目&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;名称: &lt;/strong&gt;&lt;em&gt;CustomErrorPage&lt;/em&gt;&lt;/p&gt;&lt;p&gt;在&lt;em&gt;SharePoint &lt;/em&gt;&lt;em&gt;自定义向导&lt;/em&gt;中，输入之前步骤创建的网站的URL地址（http://moss.contoso.com/sites/Lab03），来将其作为调试用网站，然后，勾选&lt;em&gt;部署为场解决方案&lt;/em&gt;复选框。&lt;/p&gt;&lt;p&gt;首先，要创建一个事件接收器，用于将当前网站中的子网站数量限制为2个。这需要为当前项目添加一个新的项目条目。在解决方案资源管理器工具窗口中，右击&lt;em&gt;CustomErrorPage&lt;/em&gt;项目，并选择&lt;em&gt;添加&lt;/em&gt;&lt;em&gt;&amp;raquo; &lt;/em&gt;&lt;em&gt;新建项&lt;/em&gt;。在&lt;em&gt;SharePoint &amp;raquo; 2010&lt;/em&gt;模板列表中选择&lt;em&gt;事件接收器&lt;/em&gt;，并将其命名为&lt;em&gt;MaxSubSitesReceiver&lt;/em&gt;。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823552689.png" alt="" /&gt;&lt;br /&gt;然后，该向导对话框将提示您设置该事件接收器的属性。使用如下操作步骤完成向导操作：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;当提示设置&lt;em&gt;需要哪种类型的事件接收器&lt;/em&gt;时，选择&lt;em&gt;Web &lt;/em&gt;&lt;em&gt;事件&lt;/em&gt;。&lt;/li&gt;&lt;li&gt;当提示设置&lt;em&gt;处理以下事件&lt;/em&gt;时，选&lt;em&gt;正在配置网站。&lt;/em&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823564035.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;打开MaxSubSitesReceiver\MaxSubsitesReceiver.cs代码文件。将WebAdding事件处理代码替换为如下代码：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; WebAdding(SPWebEventProperties properties) {&lt;br /&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; check how many other subsites are in the current site this&lt;br /&gt;  &lt;/span&gt;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;      site is being created within... no more than 2 allowed&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;  &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (properties.Web.Webs.Count &amp;gt;= &lt;span style="color: #800080;"&gt;2&lt;/span&gt;)&lt;br /&gt;  {&lt;br /&gt;     properties.Cancel = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;     properties.RedirectUrl = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/_layouts/CustomErrorPage/SiteCreationError.aspx&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;     properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;&lt;br /&gt;&lt;br /&gt;   }&lt;br /&gt;}&lt;/div&gt;&lt;p&gt;每当在当前网站(SPWeb)中新建子网站(SPWeb)时，该事件接收器将被触发，以检查当前网站中的子网站数量。如果已经存在两个子网站，则该事件接收器就会放弃新网站的创建操作，并将用户重定向到一个自定义的名为SiteCreationError.aspx的ASPX页面，您将在后面的步骤中创建该页面。&lt;/p&gt;&lt;p&gt;首先，考虑一下您创建一个自定义错误页面的理由。通过使用这项技术，您可以为用户提供特定于当前问题的充足上下文信息，并针对如何解决该问题提供指引。现在，您将创建一个用于告知用户无法向当前网站添加两个以上子网站的简单自定义错误页面。&lt;/p&gt;&lt;p&gt;现在，将创建一个在错误发生时由您的事件处理程序调用并重定向用户的自定义应用程序页面。右击&lt;em&gt;CustomErrorPage&lt;/em&gt;项目，并选择&lt;em&gt;添加&lt;/em&gt;&lt;em&gt;&amp;raquo; SharePoint&lt;/em&gt;&lt;em&gt;的&lt;/em&gt;&lt;em&gt;&amp;ldquo;Layouts&amp;rdquo; &lt;/em&gt;&lt;em&gt;映射文件夹&lt;/em&gt;：&lt;/p&gt;&lt;div&gt;&amp;nbsp;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823594929.png" alt="" /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;右击Layouts\CustomErrorPage文件夹，选择&lt;em&gt;添加&lt;/em&gt;&lt;em&gt; &amp;raquo; &lt;/em&gt;&lt;em&gt;新建项&lt;/em&gt;，从&lt;em&gt;SharePoint | 2010&lt;/em&gt;分组中选择&lt;em&gt;应用程序页&lt;/em&gt;模板，并将该文件命名为SiteCreationError.aspx。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040900002018.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;在代码视图中，打开SiteCreationError.aspx，并将Main、PageTitle 和 PageTitleInTitleArea占位符中的内容更新为如下代码：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Main"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; contentplaceholderid&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PlaceHolderMain"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  ERROR: You can only have a maximum of two (2) subsites in the current site.&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PageTitle"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; contentplaceholderid&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PlaceHolderPageTitle"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  ERROR: Maximum Subsites in Current Site Exceeded&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PageTitleInTitleArea"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; contentplaceholderid&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PlaceHolderPageTitleInTitleArea"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   ERROR: Maximum Subsites in Current Site Exceeded&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;保存所有更改，并按&lt;em&gt;[CTRL]+[F5]&lt;/em&gt;，来生成和部署当前解决方案，以便测试您的工作成果。最后，Visual Studio将在浏览器中打开该网站。尝试通过&lt;strong&gt;创建&lt;/strong&gt;页面http://moss.contoso.com/sites/Lab03/_layouts/create.aspx在当前网站中创建第三个子网站，并确保您的事件处理程序阻止该网站的创建操作。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040900015322.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040900021416.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040900023324.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;注意，每当您创建一个子网站时，您都将被自动重定向到该新建网站。这就意味着，您需要在新建其他子网站之前，都要导航回原始网站。&lt;/li&gt;&lt;li&gt;当您创建第三个子网站时，您应该被重定向到您的自定义应用程序页面，其地址为http://moss.contoso.com/_layouts/CustomErrorPage/SiteCreationError.aspx。&lt;/li&gt;&lt;li&gt;如果直接使用网站操作或者查看所有网站内容中的创建，在安装有sliverlight的浏览器中，会启用sliverlight风格的创建页面，这时可以看到阻止创建成功，但是没有跳转。&lt;/li&gt;&lt;/ol&gt;&lt;p class="LabStepNumbered"&gt;同理，我们也可以添加一个列表项事件接收器。与上例相比，这种重定向更加接近SharePoint2010的界面风格。相关信息如下。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;名称：&lt;strong&gt;TaskDueDateReceiver&lt;/strong&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;绑定到&lt;strong&gt;任务&lt;/strong&gt;，处理&lt;strong&gt;正在添加项&lt;/strong&gt;事件。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040900031187.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;打开TaskDueDateReceiver\TaskDueDateReceiver.cs代码文件。将ItemAdding事件处理代码替换为如下代码：&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; ItemAdding(SPItemEventProperties properties)&lt;br /&gt;{&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;base&lt;/span&gt;.ItemAdding(properties);&lt;br /&gt;     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;.IsNullOrEmpty(properties.AfterProperties[&lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;DueDate&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;].ToString()))&lt;br /&gt;     {&lt;br /&gt;       properties.Status = SPEventReceiverStatus.CancelWithRedirectUrl;&lt;br /&gt;       properties.RedirectUrl = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/_layouts/CustomErrorPage/DueDateErrorPage.aspx&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;     }&lt;br /&gt;}&lt;/div&gt;&lt;p class="LabStepCodeBlockCxSpFirst"&gt;同样，在Layouts\CustomErrorPage下添加一个应用程序页DueDateErrorPage.aspx。，并将Main、PageTitle 和 PageTitleInTitleArea占位符中的内容更新为如下代码：&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Main"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; ContentPlaceHolderID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PlaceHolderMain"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    任务的截止日期没有填！&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PageTitle"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; ContentPlaceHolderID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PlaceHolderPageTitle"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;这是一个自定义的错误信息页面&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PageTitleInTitleArea"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; ContentPlaceHolderID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="PlaceHolderPageTitleInTitleArea"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; runat&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="server"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;这是一个自定义的错误信息页面&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;asp:Content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="LabStepCodeBlockCxSpFirst"&gt;保存所有更改，并按&lt;em&gt;[CTRL]+[F5]&lt;/em&gt;。在打开的浏览器中，点击任务列表，并新建一个任务项。如果没有填写截至日期，保存时会出现如下提示：&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040900045960.png" alt="" /&gt;&lt;/p&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您已经创建了一个用到错误页面事件处理程序选项的新事件。&lt;/p&gt;&lt;p&gt;相关文件下载&lt;a href="http://files.cnblogs.com/Sunmoonfire/03_Lists.zip"&gt;03_Lists.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;参考资料：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6184" target="_blank"&gt;Sharepoint 2010 Developer Training Kit&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2438310.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/09/2438310.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438286.html</id><title type="text">SharePoint 2010开发工具图解系列：Visual Studio 2010创建列表</title><summary type="text">在此次练习中，您将利用包括Visual Studio 2010在内的SharePoint开发工具来新建一个SharePoint列表。包括创建内容类型和2个网站栏...</summary><published>2012-04-08T15:48:00Z</published><updated>2012-04-08T15:48:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438286.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438286.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;练习 ：利用Visual Studio 2010创建列表&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您将利用包括Visual Studio 2010在内的SharePoint开发工具来新建一个SharePoint列表。&lt;/p&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;在开始此次练习之前，您可能需要运行位于c:\Student\Labs\03_Lists\文件夹中的SetupLab03.bat批处理文件，来新建一个用于测试和调试您将在此次实验中所编写的代码的网站集。该批处理文件将在http://moss.contoso.com/sites/Lab03位置新建一个网站集。&lt;/li&gt;&lt;li&gt;启动Internet Explorer并导航到位于http://moss.contoso.com/sites/Lab03的顶级网站。对该网站稍做观察，并确保其符合预期要求。注意，该设置脚本将新建一个位于顶级的新网站集。&lt;/li&gt;&lt;li&gt;启动Visual Studio 2010，选择&lt;em&gt;文件&lt;/em&gt;&lt;em&gt;&amp;raquo; &lt;/em&gt;&lt;em&gt;新建项目&lt;/em&gt;并使用如下信息，来新建一个空白的SharePoint项目：&lt;br /&gt;&lt;p class="LabStepLevel2NoBullet" style="margin-left: 60px;"&gt;&lt;strong&gt;项目类型&lt;/strong&gt;: 已安装的模板&amp;raquo; SharePoint &amp;raquo; 2010&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet" style="margin-left: 60px;"&gt;&lt;strong&gt;模板&lt;/strong&gt;: 空白SharePoint项目&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet" style="margin-left: 60px;"&gt;&lt;strong&gt;名称&lt;/strong&gt;: ListsAndSchemas&lt;/p&gt;&amp;nbsp;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823252213.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;在&lt;em&gt;SharePoint &lt;/em&gt;&lt;em&gt;自定义向导&lt;/em&gt;中，输入之前步骤创建的网站的URL地址（http://moss.contoso.com/sites/Lab03），来将其作为调试用网站，然后，勾选&lt;em&gt;部署为场解决方案&lt;/em&gt;复选框。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823260193.png" alt="" /&gt;&lt;/p&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;首先要为待创建的新列表定义网站栏目和内容类型。要实现该目的，需要向当前项目添加一个新的项目条目。在解决方案资源管理器窗口中，右击&lt;em&gt;ListsAndSchemas&lt;/em&gt;项目，并选择&lt;em&gt;添加&lt;/em&gt;&lt;em&gt;&amp;raquo; &lt;/em&gt;&lt;em&gt;新建项&lt;/em&gt;。在&lt;em&gt;SharePoint &amp;raquo; 2010&lt;/em&gt;模板列表中，选择&lt;em&gt;内容类型&lt;/em&gt;，并将其命名为&lt;em&gt;Product&lt;/em&gt;。此时，该向导对话框将提示您为新建内容类型指定继承自哪个现有的内容类型。选择&lt;em&gt;项目&lt;/em&gt;内容类型。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823264887.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823271475.png" alt="" /&gt;&lt;/p&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;在创建内容类型之前，首先要创建2个网站栏。在&amp;lt;ContentType&amp;gt;元素的起始位置之前添加如下CAML。注意，您不必使用与如下代码相同的GUID。只要确保一直在使用您自己的GUID即可，因为后面的步骤需要对其进行引用。&lt;br /&gt;&lt;em&gt;请确保&lt;/em&gt;&lt;em&gt;ID=""&lt;/em&gt;&lt;em&gt;属性使用大写字母。IntelliSense&lt;/em&gt;&lt;em&gt;将试图使用无效的Id=""&lt;/em&gt;&lt;em&gt;&lt;em&gt;形式。&lt;/em&gt;&lt;/em&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;SourceID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/v3"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{36819A9B-E748-47D5-9949-A65DD195BF80}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductDescription"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product Description"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="My Custom Columns"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Text"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         DisplaceOnUpgrade&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;SourceID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/v3"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product ID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="My Custom Columns"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Number"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         DisplaceOnUpgrade&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;em&gt;&lt;br /&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;在创建网站栏之后，您就可以将这些栏添加到当前的内容类型。为每个由&amp;lt;ContentType&amp;gt;节点包围的2个栏添加一个包含若干&amp;lt;FieldRef&amp;gt;元素的&amp;lt;FieldRefs&amp;gt;元素，来实现将各个栏添加到当前的内容类型，定义完成的内容类型应该如下CAML所示。确保为ProductDescription 和 ProductID使用正确的GUID，以便可以引用到前一步骤所创建的栏目。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;SourceID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/v3"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;SourceID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/v3"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentType &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0x01001586d96f1cb54a19becaf8ee2f193899"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Group&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="我的自定义内容类型"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="我的Product内容类型"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Inherits&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;               Version&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRefs&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Title"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product Name"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{36819A9B-E748-47D5-9949-A65DD195BF80}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductDescription"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRefs&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;完成后如下图所示。&amp;nbsp;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823312437.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;现在，就可以利用该内容类型来创建列表模板及其实例。在解决方案资源管理器窗口中，右击&lt;em&gt;ListsAndSchemas&lt;/em&gt;项目，选择&lt;em&gt;添加&lt;/em&gt;&lt;em&gt;&amp;raquo; &lt;/em&gt;&lt;em&gt;新建项&lt;/em&gt;，从&lt;em&gt;SharePoint &amp;raquo; 2010&lt;/em&gt;列表中选取&lt;em&gt;列表定义&lt;/em&gt;模板，并将其命名为&lt;em&gt;ProductList&lt;/em&gt;。在随后打开的对话框中，将该列表的名称设置为&lt;em&gt;ProductList&lt;/em&gt;，并将&lt;em&gt;列表定义的类型是什么&lt;/em&gt;设置为&lt;em&gt;自定义列表&lt;/em&gt;，保留&lt;em&gt;为此列表定义添加列表实例&lt;/em&gt;复选框的勾选状态。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823314397.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823320637.png" alt="" /&gt;&lt;/p&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;现在，将对列表的定义（或者叫做：模板）及其架构进行修改。储在&lt;em&gt;ListsAndSchemas&lt;/em&gt;解决方案的ListsAndSchemas\ProductList\Elements.xml文件之中的列表定义包含列表模板。将其Type属性从&lt;em&gt;10000&lt;/em&gt; 更改为 &lt;em&gt;10001&lt;/em&gt;，以为其赋予唯一&lt;em&gt;ID&lt;/em&gt;值。&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListTemplate&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductList"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="10001"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        BaseType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        OnQuickLaunch&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        SecurityBits&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="11"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        Sequence&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="410"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductList"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        Description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;        Image&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="/_layouts/images/itgen.gif"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;接下来，打开当前项目的&lt;em&gt;ListsAndSchemas\ProductList&lt;/em&gt;区域中的schema.xml文件。该文件包含有关列表的所有详细信息，例如列表中的显示字段、内容类型以及视图。&lt;/li&gt;&lt;li&gt;首先，将EnableContentTypes="TRUE"属性添加到&amp;lt;List&amp;gt;节点。&lt;/li&gt;&lt;li&gt;接下来，将之前创建的内容类型添加到靠近schema.xml文件顶部的&amp;lt;ContentTypes&amp;gt;节中，如下所示：&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;List &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns:ows&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Microsoft SharePoint"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductList"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; EnableContentTypes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FolderCreation&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="FALSE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Direction&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$Resources:Direction;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Lists/ListsAndSchemas-ProductList"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; BaseType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MetaData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypeRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0x01"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Folder &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;TargetName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Item"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypeRef&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypeRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0x0120"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypeRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0x01001586d96f1cb54a19becaf8ee2f193899"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;.&lt;/em&gt;&lt;em&gt;应确保使用与您之前所创建的内容类型相同的内容类型&lt;/em&gt;&lt;em&gt;ID&lt;/em&gt;&lt;em&gt;。&lt;/em&gt;&lt;/li&gt;&lt;li&gt;现在，将通过向schema.xml文件中的&amp;lt;Fields&amp;gt;节中添加字段的方式，来将这些字段包含在当前列表中。添加当前内容类型中的3个字段，如下所示：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;List &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns:ows&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Microsoft SharePoint"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductList"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; EnableContentTypes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; FolderCreation&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="FALSE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Direction&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="$Resources:Direction;"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Lists/ListsAndSchemas-ProductList"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; BaseType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="0"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;MetaData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&amp;hellip;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ContentTypes&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Fields&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Title"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product Name"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Text"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{36819A9B-E748-47D5-9949-A65DD195BF80}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductDescription"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product Description"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Text"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Field &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;             Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Number"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Fields&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;在向列表添加内容类型和字段之后，还要将这些字段添加到2个默认的列表视图。找到&amp;lt;ViewFields&amp;gt;元素，并添加这些字段。在schema.xml文件中包含2个默认的视图，找到它们。其中，第一个视图如下所示：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ViewFields&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LinkTitleNoMenu"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{36819A9B-E748-47D5-9949-A65DD195BF80}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;          Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductDescription"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;          DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product Description"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ViewFields&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;第二个视图如下所示：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ViewFields&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Attachments"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="LinkTitle"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{36819A9B-E748-47D5-9949-A65DD195BF80}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;          Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductDescription"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;          DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Product Description"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;FieldRef &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="{5CD2C0C1-67AC-4F9E-BF21-463CFEE9B382}"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;         DisplayName&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ProductID"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ViewFields&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823371838.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823373238.png" alt="" /&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823375429.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;在完成创建列表模板和定义之后，您需要对列表实例进行修改，以使其不再使用当前模板。首先，将将ProductList\ListInstance1 重命名为 &lt;em&gt;ProductList\Products&lt;/em&gt;：&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823393535.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;接下来，打开ProductList\Products\Elements.xml文件。按照如下代码更改&amp;lt;ListInstance&amp;gt;元素，包括更改Title、TempateType 和 Url属性：&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListInstance &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Products"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                OnQuickLaunch&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TRUE"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                TemplateType&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="10001"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Lists/Products"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;br /&gt;                Description&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;=""&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;ListInstance&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;保存所有更改并按&lt;em&gt;[CTRL]+[F5]&lt;/em&gt;，来生成和部署当前解决方案，以便对您的工作成果进行测试。最终，Visual Studio将在浏览器中打开该网站，您应该在快速启动区中看到&lt;em&gt;Products&lt;/em&gt;列表。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823403516.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823410244.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823412430.png" alt="" /&gt;&lt;/p&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;您可以进入&lt;em&gt;网站栏库&lt;/em&gt; 和 &lt;em&gt;网站内容类型库&lt;/em&gt;，来查看当前Visual Studio 2010项目所创建的其他资源。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823424235.png" alt="" /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040823420219.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;在此次练习中，您已经使用Visual Studio 2010中全新的SharePoint Tools新建了若干网站栏、一个内容类型、列表模板以及该列表的一个实例。&lt;/p&gt;&lt;p&gt;相关文件下载&lt;a href="http://files.cnblogs.com/Sunmoonfire/03_Lists.zip"&gt;03_Lists.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;参考资料：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6184" target="_blank"&gt;Sharepoint 2010 Developer Training Kit&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2438286.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438286.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438090.html</id><title type="text">SharePoint 2010开发工具图解系列：Visual Studio 2010 SharePoint Tool入门</title><summary type="text">在第一个练习中，您将创建一个空白项目，并对所有项目通用的Visual Studio 2010 SharePoint Tools工具集功能领域进行侧重了解。您要做的大部分操作都集中在更改项目属性和项目主要功能的属性上。接下来将向其添加一些Web部件。在后续的练习中，您将利用Web部件模板向当前项目添加1个新的SPI。请记住，Web部件模板只是许多SharePoint项目类型中的一种，它们包含在Visual Studio 2010 SharePoint Tools之中...</summary><published>2012-04-08T14:04:00Z</published><updated>2012-04-08T14:04:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438090.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438090.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;练习 1：创建一个SharePoint 2010项目&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;在第一个练习中，您将创建一个空白项目，并对所有项目通用的Visual Studio 2010 SharePoint Tools工具集功能领域进行侧重了解。您要做的大部分操作都集中在更改项目属性和项目主要功能的属性上。&lt;/p&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;在您开始后面的操作之前，需要运行SetupLab02.bat批处理文件，来新建一个用于测试和调试此次试验将要编写的程序代码的网站集，该文件位于c:\Student\Labs\02_VS2010_SPT\文件夹中。该批处理文件将在URL地址为http://moss.contoso.com/sites/Lab02的位置新建一个网站集。&lt;/li&gt;&lt;li&gt;启动Internet Explorer并导航到位于http://moss.contoso.com/sites/Lab02的顶级网站。您应该看到新建的空白网站。您将使用该网站来测试和调试在此次试验的各个练习中所开发的项目。&lt;br /&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821354763.png" alt="" /&gt;&lt;/li&gt;&lt;li&gt;现在，右击开始菜单中的Microsoft Visual Studio 2010快捷方式，并单击以管理员身份运行选项，以管理员身份启动Microsoft Visual Studio 2010。通过以这种方式（用管理员权限）启动Visual Studio，可以在附加到SharePoint工作者进程时保持Visual Studio调试程序正常工作。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821372729.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;新建一个Visual Studio项目，并将其指定为&lt;em&gt;空白&lt;/em&gt;&lt;em&gt;SharePoint&lt;/em&gt;&lt;em&gt;项目&lt;/em&gt;类型的SharePoint Tools项目。您会发现，该项目类型将采用Visual C# &amp;raquo; SharePoint &amp;raquo; 2010这一路经。确保已选中&lt;em&gt;.NET Framework 3.5&lt;/em&gt;而非默认的.NET Framework 4.0。名称为ContosoWebParts。单击确定，以启动&lt;em&gt;SharePoint &lt;/em&gt;&lt;em&gt;自定义向导&lt;/em&gt;。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821382528.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;当&lt;em&gt;SharePoint &lt;/em&gt;&lt;em&gt;自定义向导&lt;/em&gt;提示您指定一个本地调试网站时，输入http://moss.contoso.com/sites/Lab02这一URL地址。将信任级别更改为部署为场解决方案，然后，单击完成。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821392764.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;当该新项目被创建之后，您应该看到它包含4个节点：&lt;em&gt;Properties&lt;/em&gt;、&lt;em&gt;References&lt;/em&gt;&lt;em&gt;、&lt;/em&gt;&lt;em&gt;Features&lt;/em&gt; 和 &lt;br /&gt;&lt;em&gt;Package&lt;/em&gt;。其中，前两个节点是所有Visual Studio项目的标准节点，而&lt;em&gt;Features&lt;/em&gt;节点和&lt;em&gt;Package&lt;/em&gt;节点则特定于通过Visual Studio 2010 SharePoint &lt;br /&gt;Tools所创建的项目。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821394469.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;右击默认的功能节点，即由SharePoint Tools添加的名为&lt;em&gt;Feature&lt;/em&gt;&lt;em&gt;s&lt;/em&gt;的节点，并单击&lt;em&gt;添加功能&lt;/em&gt;。将默认添加的Feature1功能重命名为&lt;em&gt;Main&lt;/em&gt;。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821400246.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;在功能设计器中打开Main功能。使用功能设计器将该功能的&lt;em&gt;标题&lt;/em&gt; 和 &lt;em&gt;说明&lt;/em&gt;更改为如下值：&lt;p class="LabStepLevel2NoBullet"&gt;&lt;em&gt;标题&lt;/em&gt;&lt;strong&gt;:&lt;/strong&gt; Custom Web Parts&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;em&gt;说明&lt;/em&gt;&lt;strong&gt;:&lt;/strong&gt; My very first project using the Visual Studio 2010 Tools&lt;/p&gt;&lt;/li&gt;&lt;li&gt;您还必须将Main功能的&lt;em&gt;范围&lt;/em&gt;设置从默认值&lt;em&gt;Web&lt;/em&gt;更改为Site。不必对此产生困惑。只要记住，将&lt;em&gt;范围&lt;/em&gt;设置为Web，表示对当前功能实行网站级别的激活，而将&lt;em&gt;范围&lt;/em&gt;设置为Site，则表示网站集级别的激活。由于Web部件的部署要求某个功能的作用域必须为整个网站集，以便正确部署Web部件的说明文件，因此，此处必须将&lt;em&gt;范围&lt;/em&gt;设置为Site。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821404162.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;现在，您将向当前项目添加一些图片，以便这些图片被部署到SharePoint的Images文件夹中。要正确执行该操作，首先要向您的项目添加一个映射文件夹来作为SharePoint的Images文件夹。在解决方案资源管理器中，右击ContosoWebParts项目，展开添加菜单，并选择SharePoint的 "Images" 映射文件夹命令。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821413711.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;在完成上述步骤之后，您应该看到Images目录已存在于您的项目之中。您还应该在Images文件夹中看到一个与ContosoWebParts项目同名的子文件夹。这充分展现了SPT如何确保最顺畅的SharePoint开发过程。当向您的项目添加图片文件时，不要将其直接添加到Images文件夹中。而是要将这些图片添加到ContosoWebParts子文件夹中，从而避免这些图片的文件名与Microsoft部署在Images目录中的图片文件产生文件名冲突。&lt;/li&gt;&lt;li&gt;在C:\Student\Labs\02_VS2010_SPT\StarterFiles文件夹中包含2个GIF文件。这些文件分别名为FeatureIcon.gif和WebPartIcon.gif。右击Images文件夹中的ContosoWebParts文件夹，并选择添加&amp;raquo; 现有项...命令。当显示结果对话框时，导航到包含这2个GIF文件的文件夹。将这2个GIF文件全部添加到当前项目。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821421595.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;您首先要使用的GIF文件为FeatureIcon.gif，将Main功能的Image Url属性更改为FeatureIcon.gif。&lt;ol&gt;&lt;li&gt;在功能设计器中打开Main功能，并确保该窗口处于活动状态。&lt;/li&gt;&lt;li&gt;在Main功能的属性列表中查找目标属性。&lt;/li&gt;&lt;li&gt;将图像Url属性更改为相对于Images的URL地址ContosoWebParts\FeatureIcon.gif。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821424317.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;将您对Main功能所做的设置进行保存。&lt;/li&gt;&lt;/ol&gt;&lt;div class="_mce_tagged_br"&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您已经利用SPT工具创建了第一个功能，并为当前项目添加了一个映射文件夹。接下来的练习中，您将向当前项目添加更多内容，以使其更具使用价值。&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;strong&gt;练习 2：创建、部署和测试Web部件&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;到目前为止，您已经拥有了一个名为ContosoWebParts的项目，接下来将向其添加一些Web部件。在后续的练习中，您将利用Web部件模板向当前项目添加1个新的SPI。请记住，Web部件模板只是许多SharePoint项目类型中的一种，它们包含在Visual Studio 2010 SharePoint Tools之中。&lt;/p&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;向ContosoWebParts项目添加一个名为HelloPart的新Web部件。&lt;ol&gt;&lt;li&gt;在解决方案资源管理器中，右击ContoWebParts项目，并选择添加&amp;raquo; 新建项。&lt;/li&gt;&lt;li&gt;选择Web 部件项目模板，并将其命名为HelloPart。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821483529.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;查看HelloPart Web部件的SPI节点。您应该看到其中包含3个SPI文件，分别为Elements.xml、HelloPart.cs 和 &lt;br /&gt;HelloPart.webpart。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821485589.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;打开名为HelloPart.webpart的文件，并对其进行如下修改。&lt;ol&gt;&lt;li&gt;找到Title属性元素，并将其值更改为The "Hello" Web Part。&lt;/li&gt;&lt;li&gt;找到Description属性元素，并对其值进行更改。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;webParts&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;webPart &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/WebPart/v3"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;metaData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;type &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ContosoWebParts.HelloPart.HelloPart, &lt;br /&gt;                  $SharePoint.Project.AssemblyFullName$"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;importErrorMessage&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;$Resources:core,ImportErrorMessage;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;importErrorMessage&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;metaData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;properties&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Title"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="string"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;The "Hello" Web Part&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Description"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="string"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;A most compelling Web Part&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;properties&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;webPart&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;webParts&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;除了Title 和 Description属性值之外，为HelloPart.webpart添加3个额外的Web部件属性，采用如下的名称/取值配对元素。&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;ChromeType:&lt;/strong&gt; TitleAndBorder&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;CatalogIconImageUrl:&lt;/strong&gt; _layouts/images/ContosoWebParts/WebPartIcon.gif&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;TitleIconImageUrl:&lt;/strong&gt; _layouts/images/ContosoWebParts/WebPartIcon.gif&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;webParts&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;webPart &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/WebPart/v3"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;metaData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;type &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ContosoWebParts.HelloPart.HelloPart, $SharePoint.Project.AssemblyFullName$"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;importErrorMessage&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;$Resources:core,ImportErrorMessage;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;importErrorMessage&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;metaData&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;properties&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ChromeType"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="chrometype"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;TitleAndBorder&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Title"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="string"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;The "Hello" Web Part&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Description"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="string"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;The mother of all other Web Parts.&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="CatalogIconImageUrl"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="string"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;_layouts/images/ContosoWebParts/WebPartIcon.gif&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="TitleIconImageUrl"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="string"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;_layouts/images/ContosoWebParts/WebPartIcon.gif&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;property&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;properties&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;data&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;webPart&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;webParts&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;打开elements.xml Web部件，并对其进行如下修改。&lt;ol&gt;&lt;li&gt;通过修改File元素的URL属性，来更改.webpart文件名，以确保其唯一性。将"ContosoWebPart_"文本值追加到URL属性值的开始处。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Module &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HelloPart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; List&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="113"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="_catalogs/wp"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;File &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Path&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HelloPart\HelloPart.webpart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;br /&gt;          Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ContosoWebPart_HelloPart.webpart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;br /&gt;          Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="GhostableInLibrary"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Group"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Custom"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;File&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Module&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;将Group属性值更改为"Contoso Web Part"。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;xml version="1.0" encoding="utf-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Module &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HelloPart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; List&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="113"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="_catalogs/wp"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;File &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Path&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="HelloPart\HelloPart.webpart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;br /&gt;          Url&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="ContosoWebPart_HelloPart.webpart"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; &lt;br /&gt;          Type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="GhostableInLibrary"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;Property &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Group"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; Value&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Contoso Web Parts"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;File&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Module&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;打开名为HelloPart.cs的C#源文件。编写如下初始代码，以便为实现Web部件类做好准备。&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #0000ff;"&gt;namespace&lt;/span&gt; ContosoWebParts.HelloPart {&lt;br /&gt;  &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; HelloPart : WebPart {&lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; Label lblOutput;   &lt;br /&gt;    &lt;span style="color: #0000ff;"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;void&lt;/span&gt; CreateChildControls() {&lt;br /&gt;      lblOutput = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Label();&lt;br /&gt;      lblOutput.Text = &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;Hello Web Part&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;      Controls.Add(lblOutput);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;/div&gt;&lt;/li&gt;&lt;li&gt;对ContosoWebParts项目进行生成，并确保没有任何编译错误。如果在执行生成命令时出现错误，查找并修复这些错误，直至无误地完成执行生成命令。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821572461.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;执行部署命令，以便对ContosoWebParts项目的解决方案包进行压缩和部署。&lt;/li&gt;&lt;li&gt;在浏览器中，导航到位于http://moss.contoso.com/sites/lab02的测试网站，并通过如下操作步骤来完成激活过程。&lt;ol&gt;&lt;li&gt;单击&lt;em&gt;网站操作&lt;/em&gt;&lt;em&gt;&amp;raquo; &lt;/em&gt;&lt;em&gt;网站设置&lt;/em&gt;，以导航到&lt;em&gt;网站设置&lt;/em&gt;页面。&lt;/li&gt;&lt;li&gt;在&lt;em&gt;网站设置&lt;/em&gt;页面的网站集管理区域中，单击网站集功能链接，以导航到&lt;em&gt;网站集管理&lt;/em&gt;&amp;gt;&lt;em&gt;功能&lt;/em&gt;页面。&lt;/li&gt;&lt;li&gt;找到Contoso Web Parts，并将其激活。如果已处于活动状态，则先将其停用，并再次将其激活。需要注意的是，功能激活过程实际上是将.webpart文件提交到Web 部件库之中，以便允许您对工作成果进行测试。&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;现在，将把您刚刚创建的用于测试的Web部件实例添加到Web 部件页。导航到default.aspx主页。当前页面顶部的功能区包含一个标题为页面的选项卡。单击页面选项卡，并点击编辑页面按钮，以便让您进入用于为当前页面添加、修改和删除Web部件的编辑模式。确保左栏Web部件区域已被选择（被选择的区域由深蓝边框表示），以便让页面工具上下文选项卡显示出来。单击功能区中的插入选项卡，并单击Web 部件按钮，如下图所示。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821580351.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;此时，您应该看到用于向页面添加新Web部件的全新SharePoint 2010用户界面。您应该看明白Web部件的分类方式，例如列表和库and Libraries、社会协作 &lt;br /&gt;和 内容汇总。您还应该看到一个新的名为Contoso Web Parts的自定义类别，这是您曾在elements.xml文件中编辑Group属性时所创建的。当您在左侧区域中选择Contoso Web Parts类别时，您应该看到已添加到HelloPart.webpart的Web部件出现在右侧区域，并带有The "Hello" Web Part标题。当您选择The "Hello" Web Part时，确保右下方的下拉列表框已被设置为&lt;em&gt;Left&lt;/em&gt;&lt;br /&gt;Web部件区域（如下所示），然后，单击Add按钮，将该Web部件添加到当前页面。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821583246.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;此时，您已经完成了创建、部署和测试Web部件的所有必要操作。该测试Web部件实例应该如下所示。&lt;br /&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040821585339.png" alt="" /&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您已经创建了一个Web部件，并将其添加到您的项目中，又将您的项目添加到示例SharePoint网站中。&lt;/p&gt;&lt;p class="LabExerciseCallout"&gt;相关文件下载&lt;a href="http://files.cnblogs.com/Sunmoonfire/02_VS2010_SPT.zip"&gt;02_VS2010_SPT.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;参考资料：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6184" target="_blank"&gt;Sharepoint 2010 Developer Training Kit&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2438090.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2438090.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2437589.html</id><title type="text">SharePoint 2010开发工具图解系列：PowerShell脚本</title><summary type="text">在此次练习中，您将了解到如何使用PowerShell和专为SharePoint 2010构建的PowerShell加载项。从Windows 开始菜单中启动PowerShell控制台。您将在开始菜单-〉所有程序-〉附件-〉Windows PowerShell中找到一个叫做Windows PowerShell的PowerShell快捷方式。选择Windows PowerShell快捷方式...</summary><published>2012-04-08T06:09:00Z</published><updated>2012-04-08T06:09:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2437589.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2437589.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;strong&gt;练习 ：使用PowerShell脚本&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您将了解到如何使用PowerShell和专为SharePoint 2010构建的PowerShell加载项。&lt;/p&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;从Windows &lt;em&gt;开始&lt;/em&gt;菜单中启动PowerShell控制台。您将在&lt;em&gt;开始&lt;/em&gt;菜单-〉所有程序-〉附件-〉Windows PowerShell中找到一个叫做&lt;em&gt;Windows PowerShell&lt;/em&gt;的PowerShell快捷方式。选择&lt;em&gt;Windows PowerShell&lt;/em&gt;快捷方式。请注意，在该步骤中，您应该通过标准的PowerShell菜单项来启动PowerShell控制台，而不是SharePoint程序组下特定于SharePoint的菜单项。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;1. 您会在PowerShell控制台窗口中看到一个命令提示，键入如下命令，其中包含Set-Location命令和一个指向本地c:\驱动器的路径参数，并按[Enter]。该命令等价于DOS中的CD命令。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Set-Location c:\Student\Labs\01_Roadmap\Powershell\&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;2. 现在，PowerShell控制台的当前文件夹中应该包含几个PowerShell脚本文件（*.psl文件），此次试验将会用到这些文件。键入不包含任何参数的Get-ChildItem命令，并按[Enter]，来查看该文件中的所有.psl文件。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Get-ChildItem&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;3. 键入如下命令，并按[Enter]，以便在Notepad程序中打开名为Hello.ps1的脚本。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Notepad Hello.ps1&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;4. 在查看Hello.ps1中的PowerShell代码之后，键入.\Hello.ps1并按[Enter]，来尝试运行该脚本。如果您的虚拟机对PowerShell脚本支持仍采用默认的受限执行策略，该脚本将无法执行。如果执行策略已被更改为不受限制，控制台将询问您是否要执行该脚本。当编写和测试PowerShell脚本时，为了让脚本可以不发出询问提示而直接执行，最简便的方法就是将执行策略更改为Bypass。键入如下命令，并按[Enter]，来启用脚本运行支持。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Set-ExecutionPolicy ByPass&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;5. 现在，键入.\Hello.ps1并按[Enter]，以便再次尝试运行Hello.ps1脚本。此时，您应该看到该脚本成功运行，并将一个简单的消息输出到PowerShell控制台。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813523361.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;6. 现在，来使用一个更好的脚本编辑程序。从Windows &lt;em&gt;开始&lt;/em&gt;菜单中，打开&lt;em&gt;Windows PowerShell ISE&lt;/em&gt;。该快捷方式位于&lt;em&gt;开始&lt;/em&gt;菜单-〉所有程序-〉附件-〉Windows PowerShell中。ISE是集成脚本开发环境（Integrated Scripting Environment）的缩写。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813541136.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;7. 在Windows PowerShell ISE中再次打开Hello.ps1文件。展开Debug菜单，您应该看到该菜单为您提供了运行和调试PowerShell脚本代码的能力。按[F5]来执行Hello.ps1，并查看输出结果。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;8. 在Hello.ps1中，对文本消息稍做更改，即对名为$HelloMessage的变量进行赋值，并进行保存。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;$HellowMessage = "Sample message"&lt;br/&gt;Write-Host "-----------------------------------"&lt;br/&gt;Write-Host "Hello World of Powershell Scripting"&lt;br/&gt;Write-Host "Host name: "$(Get-Item env:\computerName).value&lt;br/&gt;Write-Host $HellowMessage&lt;br/&gt;Write-Host "-----------------------------------"&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;再次在PowerShell控制台中运行Hello.ps1。您应该看到更该如何发挥作用，并感受到编辑和运行PowerShell脚本有多么简单。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813552760.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;9. 现在，将通过一个PowerShell脚本来实践调试和单步执行功能。在Hello.psl的第一行中，用鼠标右键单击并选择&lt;em&gt;切换断点&lt;/em&gt;或按&lt;em&gt;[F9]&lt;/em&gt;，来设置一个断点。现在，按&lt;em&gt;[F5]&lt;/em&gt;开始执行。执行停止在您所设置的断点处。现在，重复按&lt;em&gt;[F11]&lt;/em&gt;来单步执行当前脚本中的其余代码行。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813555544.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;10. 打开名为LoadSharePointSnapin.ps1的脚本。查看其中的PowerShell脚本代码。其中包含用于加载名为Microsoft.SharePoint.Powershell的SharePoint 2010加载项的Add-PSSnapin命令。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;11. 现在，离开Windows PowerShell ISE并返回PowerShell控制台窗口。键入.\LoadSharePointSnapin.ps1并按[Enter]来运行脚本。此时，您可以调用由Microsoft.SharePoint.PowerShell管理单元提供的各种命令。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;12. 运行带有如下参数的Get-Command命令，并查看[]管理单元中所包含的所有命令。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Get-Command -PSSnapin Microsoft.SharePoint.PowerShell&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813562245.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;13. 在前一步骤中，控制台窗口中一次性显示了太多的Microsoft.SharePoint.PowerShell命令。再次运行Get-Command命令，但这次仅要求返回所有包含动词Get的命令。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Get-Command -PSSnapin Microsoft.SharePoint.PowerShell -Verb Get&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;14. 再次运行Get-Command命令，并输出到一个名为SP2010Cmdlets.txt的新建文本文件的管道参数。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Get-Command -PSSnapin Microsoft.SharePoint.PowerShell | out-file &amp;ndash;filepath &amp;ldquo;c:\SP2010Cmdlets.txt&amp;rdquo;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;15. 在Notepad程序中打开SP2010Cmdlets.txt，以查看Microsoft.SharePoint.PowerShell管理单元所提供的命令。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Notepad SP2010Cmdlets.txt&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813565286.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813570652.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;16. 现在，您将开始利用New-SPSite命令新建一个SharePoint网站集。要获取有关New-SPSite命令的帮助信息，可以键入如下命令并按[Enter]，这将为您显示该命令的参数列表，以及哪些参数是必须的或可选的。注意，可选参数由方括号标识。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;Get-Help New-SPSite&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;17. 使用New-SPSite命令并配合如下的参数值来创建一个新的网站集。当您完成该步骤时，您应该能够导航到位于http://moss.contoso.com/sites/Lab01C的顶层网站。&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;Url&lt;/strong&gt;: http://moss.contoso.com/sites/Lab01C&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;OwnerAlias&lt;/strong&gt;: Contoso\Administrator&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;Template&lt;/strong&gt;: STS#1&lt;/p&gt;&lt;p class="LabStepLevel2NoBullet"&gt;&lt;strong&gt;Name&lt;/strong&gt;: Lab01C&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813573649.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813580027.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;18. 在Windows PowerShell ISE中打开名为CreateContosoSalesSite.ps1的PowerShell脚本。查看其中的PowerShell脚本代码。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813582347.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;其中有一个地方用到了环境变量。所以我们需要设置一个环境变量。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;在计算机属性 - 系统属性 - 高级 - 环境变量 - 系统变量里面，查找一个变量叫IgniteUrl，值是&lt;a href="http://moss.contoso.com/"&gt;http://moss.contoso.com&lt;/a&gt;。如果没有就手工增加一个。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813585148.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;完成后需要重新启动计算机。&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;现在，返回PowerShell控制台并运行如下命令，来调用该脚本创建新网站。&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;.\CreateContosoSite.ps1 Lab01D&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class="LabStepNumbered"&gt;19. 当您在前一步骤中成功运行该脚本之后，您应该看到类似于如下所示的的输出消息。&lt;/p&gt;&lt;div&gt;&lt;p class="LabStepCodeBlockCxSpFirst"&gt;New Contoso site successfully created&lt;/p&gt;&lt;p class="LabStepCodeBlockCxSpMiddle"&gt;-------------------------------------&lt;/p&gt;&lt;p class="LabStepCodeBlockCxSpMiddle"&gt;Title: Contoso Site: Lab01D&lt;/p&gt;&lt;p class="LabStepCodeBlockCxSpMiddle"&gt;URL: http://moss.contoso.com/sites/Lab01D&lt;/p&gt;&lt;p class="LabStepCodeBlockCxSpLast"&gt;ID: &lt;em&gt;[GUID value of the new SPSite created]&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813591659.png" alt="" /&gt;&lt;/p&gt;&lt;p class="LabStepNumbered"&gt;20. 导航到位于&lt;a href="http://wingtipserver/sites/Lab01D"&gt;http://moss.contoso.com/sites/Lab01D&lt;/a&gt;的新建网站，并确保顶层网站符合您预期的要求。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/18046/2012040813594439.png" alt="" /&gt;&lt;/p&gt;&lt;div&gt;&lt;p class="LabExerciseCallout"&gt;在此次练习中，您已经动手实践了SharePoint 2010的一些PowerShell命令与自定义PowerShell脚本。&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;相关文件下载&lt;a id="" href="http://files.cnblogs.com/Sunmoonfire/01_Roadmap.zip"&gt;01_Roadmap.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;参考资料：&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=6184" target="_blank"&gt;Sharepoint 2010 Developer Training Kit&lt;/a&gt;&lt;/p&gt;&lt;p class="LabStepCodeBlockCxSpLast"&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2437589.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/04/08/2437589.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2012/02/15/2352044.html</id><title type="text">SharePoint Web Service系列：获取网站LCID</title><summary type="text">有时我们在使用Web Service时难免会用到SharePoint网站的区域ID。比如，根据不同的语言Update相应的值到列表里。又或者是调用为不同的语言准备的后台应用程序页面。如果把LCID硬编码到代码里，显然会限制我们程序的使用范围。也不符合我们的专业精神。那如何通过SharePoint Web Service 得到LCID呢...</summary><published>2012-02-14T20:13:00Z</published><updated>2012-02-14T20:13:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/02/15/2352044.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2012/02/15/2352044.html"/><content type="html">&lt;p&gt;有时我们在使用Web Service时难免会用到SharePoint网站的区域ID。比如，根据不同的语言Update相应的值到列表里。又或者是调用为不同的语言准备的后台应用程序页面。&lt;/p&gt;&lt;p&gt;如果把LCID硬编码到代码里，显然会限制我们程序的使用范围。也不符合我们的专业精神。那如何通过SharePoint Web Service 得到LCID呢？&lt;/p&gt;&lt;p&gt;其实一点也不难。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;sitedataservice.SiteData sd;&lt;br /&gt;sd = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; sitedataservice.SiteData();&lt;br /&gt;sd.Url = baseUrl + &lt;span style="color: #800000;"&gt;"&lt;/span&gt;&lt;span style="color: #800000;"&gt;/_vti_bin/sitedata.asmx&lt;/span&gt;&lt;span style="color: #800000;"&gt;"&lt;/span&gt;;&lt;br /&gt;sd.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;br /&gt;sitedataservice._sWebMetadata webMetaData;&lt;br /&gt;sitedataservice._sWebWithTime[] arrWebWithTime;&lt;br /&gt;sitedataservice._sListWithTime[] arrListWithTime;&lt;br /&gt;sitedataservice._sFPUrl[] arrUrls;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;string&lt;/span&gt; roles; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] roleUsers; &lt;span style="color: #0000ff;"&gt;string&lt;/span&gt;[] roleGroups;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;uint&lt;/span&gt; i = sd.GetWeb(&lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; webMetaData, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; arrWebWithTime, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; arrListWithTime, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; arrUrls, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; roles, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; roleUsers, &lt;span style="color: #0000ff;"&gt;out&lt;/span&gt; roleGroups);&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;uint&lt;/span&gt; lcid = webMetaData.Language;&lt;/div&gt;&lt;p&gt;&amp;nbsp;其中的关键是：&lt;/p&gt;&lt;p&gt;1、SharePoint自带的SiteData.asmx 的调用&lt;/p&gt;&lt;p&gt;2、WebMetadata中包含了我们需要的LCID（还有很多对我们有用的信息，比如Web ID，用户等等）&lt;/p&gt;&lt;p&gt;3、对于有备用语言的网站，看到有人使用读取SharePoint自带的列表的Title的方法。比如&amp;ldquo;日历&amp;rdquo;。判断如果是&amp;ldquo;日历&amp;rdquo;，就是中文；如果是"Calendar"，就是英文。对付这种多语言的网站，这也不失为一种解决办法。&lt;/p&gt;&lt;p&gt;参考资料&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff800886.aspx" target="_blank"&gt;&lt;span&gt;Understanding the Multilingual User Interface (MUI)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://social.technet.microsoft.com/Forums/zh/sharepoint2010programming/thread/42249006-816a-4d08-9275-79033cd3125c" target="_blank"&gt;&lt;span&gt;How to get current Sharepoint site LCID in silverlight web  part&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2352044.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2012/02/15/2352044.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2011/06/29/2093673.html</id><title type="text">SharePoint 2010 SP1</title><summary type="text">SharePoint 2010 SP1发布了。下载地址：Microsoft Office SharePoint Server 2010 Service Pack 1 (SP1)中文 英文Microsoft SharePoint Foundation 2010 Service Pack 1 (SP1)中文 英文有关更多更新的细节可以参考下面这本白皮书。Service Pack 1 (SP1) for Microsoft SharePoint Foundation 2010 and Microsoft SharePoint Server 2010 (white paper)。也可以直接点此下载该白</summary><published>2011-06-29T10:25:00Z</published><updated>2011-06-29T10:25:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2011/06/29/2093673.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2011/06/29/2093673.html"/><content type="html">&lt;p&gt;SharePoint 2010 SP1发布了。&lt;/p&gt;&lt;p&gt;下载地址：&lt;br /&gt;Microsoft Office SharePoint Server 2010 Service Pack 1 (SP1)&lt;/p&gt;&lt;p&gt;&lt;a href="http://download.microsoft.com/download/C/A/3/CA30728D-B945-42EA-B293-C4462482D590/officeserver2010sp1-kb2460045-x64-fullfile-zh-cn.exe"&gt;中文&lt;/a&gt;&amp;nbsp; &lt;a href="http://download.microsoft.com/download/9/7/3/9738F0E2-2151-435D-9665-CE0346EC3637/officeserver2010sp1-kb2460045-x64-fullfile-en-us.exe"&gt;英文&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Microsoft SharePoint Foundation 2010 Service Pack 1 (SP1)&lt;/p&gt;&lt;p&gt;&lt;a href="http://download.microsoft.com/download/D/2/9/D29B177A-5E27-4E2A-869C-07F25936A383/sharepointfoundation2010sp1-kb2460058-x64-fullfile-zh-cn.exe"&gt;中文&lt;/a&gt;&amp;nbsp; &lt;a href="http://download.microsoft.com/download/7/0/0/7002DFA1-831C-414A-AE71-A5D18BEF1E32/sharepointfoundation2010sp1-kb2460058-x64-fullfile-en-us.exe"&gt;英文&lt;/a&gt;&lt;/p&gt;&lt;p&gt;有关更多更新的细节可以参考下面这本白皮书。&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.microsoft.com/download/en/details.aspx?id=26573"&gt;Service Pack 1 (SP1) for Microsoft SharePoint Foundation 2010 and Microsoft SharePoint Server 2010 (white paper)&lt;/a&gt;&amp;nbsp;。也可以直接点此&lt;a href="http://download.microsoft.com/download/F/2/3/F23F030A-011B-4E83-95CB-1EF338A6AF58/Service-Pack-1-for-SharePoint-Foundation-2010-and-SharePoint-Server-2010.docx"&gt;下载&lt;/a&gt;该白皮书。&lt;/p&gt;&lt;p&gt;更新的文件和版本参考如下的知识库文章。&lt;/p&gt;&lt;p&gt;&lt;a href="http://support.microsoft.com/kb/2532120"&gt;Technical details about the SharePoint 2010 and Office Server 2010 SP1 releases&lt;/a&gt;&lt;/p&gt;&lt;p&gt;SharePoint爱好者们赶快下载吧。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/2093673.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2011/06/29/2093673.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Sunmoonfire/archive/2011/02/12/1950140.html</id><title type="text">SharePoint 2010的网站主题</title><summary type="text">从SharePoint 2003开始，主题就作为一种自定义SharePoint外观的重要选项。SharePoint 2003和2007中的包括一系列开箱即用的主题，可以被网站所有者通过SharePoint UI应用到SharePoint网站。网页设计师和开发人员可以创建包含自定义图片及CSS文件的自定义主题。定制SharePoint 2007主题的一个问题是，网页设计师或开发人员需要创建自定义的CSS，图片和相关的主题注册文件才能实现主题的自定义。而且需要将其部署到SharePoint Web前端服务器的本地文件系统上。这样无疑就提高了主题定制的门槛...</summary><published>2011-02-12T08:48:00Z</published><updated>2011-02-12T08:48:00Z</updated><author><name>Sunmoonfire</name><uri>http://www.cnblogs.com/Sunmoonfire/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Sunmoonfire/archive/2011/02/12/1950140.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Sunmoonfire/archive/2011/02/12/1950140.html"/><content type="html">&lt;p&gt;从SharePoint 2003开始，主题就作为一种自定义SharePoint外观的重要选项。SharePoint 2003和2007中的包括一系列开箱即用的主题，可以被网站所有者通过SharePoint UI应用到SharePoint网站。网页设计师和开发人员可以创建包含自定义图片及CSS文件的自定义主题。&lt;br /&gt;定制SharePoint 2007主题的一个问题是，网页设计师或开发人员需要创建自定义的CSS，图片和相关的主题注册文件才能实现主题的自定义。而且需要将其部署到SharePoint Web前端服务器的本地文件系统上。这样无疑就提高了主题定制的门槛，因为需要一定的技术知识和对物理服务器的访问权限，所以非技术人员和最终用户很难对SharePoint网站视觉设计进行灵活的修改。&lt;/p&gt;&lt;p&gt;SharePoint 2010也支持主题，但其工作机制已发生很大变化。Miicrosoft对整个主题框架进行大调整的目的之一就是，希望非技术用户能够方便的进行站的视觉设计，并能够通过SharePoint用户界面对主题进行定制。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;使用主题&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;全新的主题编辑器可以在"网站设置"下"外观"里的"网站主题"下找到，页面上提供了一个列表框，可以选择某个主题。这和SharePoint 2007里的页面一样，可以看到很多熟悉的主题名称，尽管主题本身已经发生了很大的变化。&lt;/p&gt;&lt;p&gt;&lt;img width="690" src="http://pic002.cnblogs.com/images/2011/18046/2011021212580520.png" class="shadow" /&gt;&lt;br /&gt;现在，我们可以通过SharePoint用户界面选择一个主题，然后定制其字体和颜色。SharePoint 2010主题的一大优点就是更加标准化：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;4种控制背景和文字的颜色（深色1[Dark1]，浅色1[Light1]，深色2[Dark2]，浅色2[Light2]），作为该主题的核心色调。这些颜色将作为该主题样式的主旋律，并最大程度的影响网站的整体外观。&lt;/li&gt;&lt;li&gt;&amp;nbsp;6种强调色(accent)可以使您设计的风格更加成熟，允许我们最大程度的控制激活或悬停超链接的颜色，边框的颜色，特定内容的文字颜色（如系统菜单，组标题，标题区等）。&lt;/li&gt;&lt;li&gt;&amp;nbsp;两种字体用于标题和内容元素。&lt;/li&gt;&lt;li&gt;&amp;nbsp;两种颜色用于超链接&amp;lt;hyperlinks&amp;gt;（正常[normal]的和访问过后的[followed]） &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;除了直接提供给用户选择的颜色外，主题生成器会为每种颜色自动生成5种附加色（通过亮变化和暗变化）。 每一种变化所使用的标签为（以强调文字颜色 1 [Accent 1]为例）：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;强调文字颜色 1&amp;nbsp;（用户选定的颜色）&lt;/li&gt;&lt;li&gt;强调文字颜色 1 &amp;ndash; 最亮 [Accent 1 -&amp;nbsp;Lightest]&lt;/li&gt;&lt;li&gt;强调文字颜色 1 &amp;ndash; 偏亮 [Accent 1 -&amp;nbsp;Lighter]&amp;nbsp; &lt;/li&gt;&lt;li&gt;强调文字颜色 1 &amp;ndash;&amp;nbsp;中等&amp;nbsp;[Accent 1 -&amp;nbsp;Medium]&amp;nbsp;&lt;/li&gt;&lt;li&gt;强调文字颜色 1 &amp;ndash; 偏暗&amp;nbsp;[Accent 1 -&amp;nbsp;Darker]&amp;nbsp;&lt;/li&gt;&lt;li&gt;强调文字颜色 1 &amp;ndash;&amp;nbsp;最暗&amp;nbsp;[Accent 1 -&amp;nbsp;Darkest]&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;色彩和色调变化是网页设计师进行视觉设计时的常用技法，常用于边框效果，渐变等。在本文的后面部分，我将演示这些色彩是如何通过CSS文件的方式来引用的。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;剖析一个主题&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;SharePoint 2007里的主题是一个由CSS，图片，主题信息文件组成的集合，存放在相对于SharePoint的根目录的下。在SharePoint 2010里，你仍然可以找到2007的主题，历史的原因，仍放在相同的相对目录14\Template\Themes下。&lt;/p&gt;&lt;p&gt;然而，真正的SharePoint 2010主题实际上存放在相对于SharePoint根目录的14\Template\Global\Lists\Themes下。格式也已经发生了很大的变化。主题现在使用Office Open XML的格式进行了打包，变成一个.THMX文件。&lt;/p&gt;&lt;p&gt;&lt;img width="690" src="http://pic002.cnblogs.com/images/2011/18046/2011021213244346.png" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;THMX文件是一个包含了主题样式XML定义和图片资源的zip文件。 一个主题文件内部结构的完整描述已经超出了本文的范围，你可以参考MSDN上的文章来&amp;ldquo;&lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/cc964302.aspx"&gt;创建Office Open XML格式的文档主题&lt;/a&gt;&amp;rdquo;。&lt;/p&gt;&lt;p&gt;主题也可以通过"网站设置"下"库"下面的"主题"来查看，这种方式打开的是主题库。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;主题如何用于页面呈现&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;SharePoint 2010关联到CSS的方式与SharePoint 2007大致相同，都是采用了在母版页&amp;lt;HEAD&amp;gt;部分添加控件的方式。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;SharePoint:CssLink runat="server" Version="4"/&amp;gt;&lt;br/&gt;&amp;lt;SharePoint:CssRegistration Name="/Style Library/Custom.css" After="true" runat="server" EnableCssTheming="true"/&amp;gt;&lt;br/&gt;&amp;lt;SharePoint:Theme runat="server"/&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;虽然我们一直以来都习惯通过标准的HTML&amp;lt;link&amp;gt;属性来在母版页中包含CSS样式表，但是CssLink，CssRegistration和Theme控件可以提供特殊的功能，因此这种方式在2010中继续作为一种在我们的设计中插入样式表关联的推荐方式。这里给出每个控件的简要介绍：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;lt;SharePoint:CssLink&amp;gt;控件负责插入SharePoint默认的核心样式表和任何通过CssRegistration控件注册的自定义样式表。&lt;/li&gt;&lt;li&gt;&amp;lt;SharePoint:CssRegistration&amp;gt;控件允许注册任何自定义的CSS样式。 实际插入到页面中的&amp;lt;link&amp;gt;是通过CssLink控件完成的。&lt;/li&gt;&lt;li&gt;&amp;lt;SharePoint:Theme&amp;gt;控件会检查是否有主题被应用到当前站点，并负责关联到主题的样式表。&lt;br /&gt;注：由于历史的原因，本控件似乎仍然包含在SharePoint 2010母板页中。对于SharePoint 2010主题，该控件似乎不再是必需的。 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;还是上面的例子，让我们来看看在没有应用主题时页面输出的&amp;lt;link&amp;gt;：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_layouts/2052/styles/Themable/search.css?rev=13MPCAdDiTOjeBSP8ulMLA%3D%3D"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_layouts/2052/styles/Themable/wiki.css?rev=YwZnjCtjmh%2B5m0%2BZ4o%2Fw%2Fw%3D%3D"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_layouts/2052/styles/Themable/corev4.css?rev=hMUVPfEXdjj0KHpLKexFuA%3D%3D"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/Style%20Library/Custom.css"/&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;在上面的例子中，我们可以看到通过CssLink控件插入了数个SharePoint自带的样式表。 同时还可以看到，我自定义的CSS也已经输出在最后一行，直接关联到样式库中存储的原始CSS文件。&lt;/p&gt;&lt;p&gt;在应用了一个现成的主题后，我们可以看到，SharePoint修改了输出到页面的样式表关联。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/search-BBB12040.css?ctag=6"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/wiki-8D6982C.css?ctag=6"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/corev4-24A0E46F.css?ctag=6"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/Custom-37A53504.css?ctag=6"/&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;在SharePoint 2007里，应用主题后会在页面的输出中插入一个额外的样式表关联。 该主题中包含的样式将会通过CSS的层叠行为覆盖任何核心样式或自定义样式。&lt;/p&gt;&lt;p&gt;在SharePoint 2010中的行为已经发生了改变。 当一个主题应用时，SharePoint会实时的自动生成该主题的CSS和图片，并将它们存储在应用该主题的站点的_themes文件夹下。&lt;/p&gt;&lt;p&gt;如果我们用SharePoint Designer打开该网站，可以看到SharePoint创建的这个文件夹，其中包含了生成的主题文件。 文件夹名称是一个唯一的数字标识符，该数字是在应用一个新的主题时生成的。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/18046/2011021214343575.png" class="shadow" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;要注意的很重要的一点是，SharePoint已经用主题化后的变体替代了所有原来的CSS关联。在SharePoint 2010里，当生成一个主题时，SharePoint利用嵌入在原先样式表中的指令来生成替换后的样式表。这种自动生成和替换只有在满足以下两个条件的情况下才会触发：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;自带的样式表是*主题化(themable)*的。这些样式表实际上可以很容易的通过引用它们的虚目录区分出来，因为它们位于_layouts/2052/styles/themeable目录中。&lt;/li&gt;&lt;li&gt;用于我们的自定义样式表的CSSRegistration控件需要具有 EnableCssTheming=&amp;rdquo;true&amp;rdquo; 这一属性。 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;如果我们没有启用CSS主题化，那么SharePoint会把我的自定义样式表输出在页面最后一行，并且仍旧直接关联到样式库中原来的CSS文件。&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/search-BBB12040.css?ctag=6"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/wiki-8D6982C.css?ctag=6"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/_catalogs/theme/Themed/67B9FADD/corev4-24A0E46F.css?ctag=6"/&amp;gt;&lt;br/&gt;&amp;lt;link rel="stylesheet" type="text/css" href="/Style%20Library/Custom.css"/&amp;gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;em&gt;注意：并有没有硬性的规定说自定义样式表必须支持主题， 只是在SharePoint 2007基础上多了一种选择。在SharePoint 2010里，你完全可以根据所要达到的效果选择合适的方式将自定义样式表关联到母版页，并且取消用户应用主题的能力。这种情况往往会在发布网站上碰到，往往是这类网站共同的做法。网站管理员不希望用户覆盖默认的样式。&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;在自定义样式表中支持主题&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在SharePoint 2007中，核心和自定义样式表不需要考虑任何与主题相关的事情。 SharePoint使用CSS的层叠能力使用主题中的CSS直接覆盖关联到母板页的核心和默认的自定义样式。&lt;/p&gt;&lt;p&gt;在SharePoint 2010中此行为发生了变化。现在核心样式表和任何我们开发的自定义样式表都需要包含一些标记，以便支持主题。 学习如何操作的最简单的方式就是打开现有的样式表，看看他们是如何做到这一点的：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;.ms-menutoolbar td a{&lt;br/&gt;/* [ReplaceColor(themeColor:"Hyperlink")] */ color:#0072bc;&lt;br/&gt;font-size:9pt;&lt;br/&gt;font-family:宋体;&lt;br/&gt;text-decoration:none;&lt;br/&gt;}&lt;br/&gt;&lt;/div&gt;&lt;p&gt;在上面的例子中，我们看到，为了支持主题，样式表中的CSS的注释插入了一些特定的指令。通过这些特殊指令，SharePoint就可以用主题中定义的命名样式覆盖默认的样式。&lt;/p&gt;&lt;p&gt;下面是另外的一些例子，也是从默认样式中找到的，可以帮助我们编写自己的样式表来支持主题：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;[ReplaceColor(themeColor:"Light1")]&lt;br/&gt; [ReplaceColor(themeColor:"Accent3-Darker")] &lt;br/&gt; [ReplaceColor(themeColor:"Light2-Lightest")]&lt;br/&gt; [RecolorImage(themeColor:"Light2",includeRectangle:{x:0,y:610,width:1,height:42})]&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;请注意，SharePoint现在可以在生成主题过程中自动重新着色图片(RecolorImage) - 给力啊！&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;br /&gt;将SharePoint 2007的主题升级到SharePoint 2010&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;到目前为止，我还没有看到任何有关升级SharePoint 2007主题的文章。 再加上SharePoint 2010的主题支持，升级SharePoint 2007主题实际上就是把旧的完全换掉：&lt;/p&gt;&lt;ul&gt;&lt;li&gt;可以用Office PowerPoint 2010创建自定义主题，并部署到网站的主题库中。 Todd Baginski 写过一篇&lt;a target="_blank" href="http://www.toddbaginski.com/blog/archive/2009/11/02/how-to-create-a-custom-theme-for-sharepoint-2010.aspx.aspx"&gt;如何创建SharePoint 2010自定义主题&lt;/a&gt;的文章。 如果你的自定义主题是只限于基本的文字和颜色属性的话，通过这种方式实现起来会很方便。但如果你自定义的主题中包含了一些高级的CSS技巧，那么仍需手工编写代码。&lt;/li&gt;&lt;li&gt;创建一个自定义母版页，直接在母版页中注册您的自定义CSS &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;有些人可能会抱怨说，微软似乎背离了CSS继承的Web标准的本意。但是，网站所有者、管理员和开发人员毕竟会从这种标准的提升中获得便利。 &lt;/p&gt;&lt;p&gt;参考资料&lt;/p&gt;&lt;p&gt;&lt;a target="_blank" href="http://www.sharepointbits.com/blog/2010/1/4/how-themes-work-in-sharepoint-2010.html"&gt;How Themes work in SharePoint 2010&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Sunmoonfire/aggbug/1950140.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Sunmoonfire/archive/2011/02/12/1950140.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
