使用C#获取SP配置数据库版本

时间:2012-09-13 14:24:44

标签: c# sharepoint sharepoint-2010

我希望通过C#获取SharePoint配置数据库版本,并找到SPConfigDatabase class下有Version成员的Microsoft.SharePoint.Administration。这正是我正在寻找的,但现在已经过时了。

这样做的最佳方法是什么?理想情况下,我也想抓住累积更新日期,尽管这实际上只是版本号的另一个名称。

由于

3 个答案:

答案 0 :(得分:3)

使用C#获取它的方法是使用Microsoft.SharePoint.Administration.SPFarm类,您要查找的属性是BuildVersion

var v = SPFarm.Local.BuildVersion;

因为它会返回一个System.Version对象,您可能希望将这些值连接在一起,使字符串显示在中央管理员中:

var friendly = v.Major + "." + v.Minor + "." + v.Build + "." + v.Revision;

另外,请注意,要访问SPFarm.Local属性,您需要以64位模式运行代码并拥有授权帐户。实际上,在我的VM上启用UAC后,我需要通过右键单击它并选择“以管理员身份运行”来运行我的代码。

答案 1 :(得分:1)

我通过执行powershell脚本找到了一个暂定的解决方案。这是我的解决方案,它从powershell脚本中将结果打印到控制台:

using System.Collections.ObjectModel;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
.
.
.
MAIN CODE:
Runspace runspace = RunspaceFactory.CreateRunspace();

runspace.Open();


PowerShell ps = PowerShell.Create();
ps.AddScript("Add-PsSnapin Microsoft.SharePoint.Powershell");
ps.AddScript("get-spfarm | select BuildVersion");
ps.AddCommand("Out-String");

Collection <PSObject> results = ps.Invoke();
runspace.Close();

foreach (PSObject obj in results)
{
    Console.WriteLine(obj.ToString());
}

归功于http://www.codeproject.com/Articles/18229/How-to-run-PowerShell-scripts-from-Chttp://social.msdn.microsoft.com/Forums/hu/sharepoint2010general/thread/88b11fe3-c218-49a3-ac4b-d1a04939980c

答案 2 :(得分:0)

只需连接数据库并执行此查询

SELECT SERVERPROPERTY ('productversion'), 
       SERVERPROPERTY ('productlevel'), 
       SERVERPROPERTY ('edition')

的引用: http://support.microsoft.com/kb/321185

我希望有帮助