我希望通过C#获取SharePoint配置数据库版本,并找到SPConfigDatabase class下有Version
成员的Microsoft.SharePoint.Administration。这正是我正在寻找的,但现在已经过时了。
这样做的最佳方法是什么?理想情况下,我也想抓住累积更新日期,尽管这实际上只是版本号的另一个名称。
由于
答案 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-C 和http://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
我希望有帮助