我希望通过C#获取SharePoint配置数据库版本,并在Microsoft.SharePoint.Administration下找到了SPConfigDatabase class,它有一个Version成员。这正是我要找的,但现在已经过时了。
做这件事最好的方法是什么?理想情况下,我还想获取累积更新日期,尽管这本质上只是版本号的另一个名称。
谢谢
发布于 2012-09-13 23:26:20
使用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位模式下运行代码,并拥有授权帐户。事实上,在我的虚拟机上启用UAC后,我需要通过右键单击代码并选择“以管理员身份运行”来运行代码。
发布于 2012-09-13 23:17:37
我通过执行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
发布于 2012-09-13 22:30:42
只需连接到数据库并执行以下查询
SELECT SERVERPROPERTY ('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')参考资料:http://support.microsoft.com/kb/321185
我希望这对你有帮助
https://stackoverflow.com/questions/12408517
复制相似问题