C#を介してSharePoint構成データベースのバージョンを取得しようとしていますが、 Microsoft.SharePoint.Administrationの下にメンバーを持つSPConfigDatabaseクラスが見つかりました。これはまさに私が探しているものですが、これは現在廃止されています。Version
これを行うための最良の方法は何ですか?理想的には、累積更新日も取得したいと思いますが、これは基本的にバージョン番号の別名にすぎません。
ありがとう
C#を介してSharePoint構成データベースのバージョンを取得しようとしていますが、 Microsoft.SharePoint.Administrationの下にメンバーを持つSPConfigDatabaseクラスが見つかりました。これはまさに私が探しているものですが、これは現在廃止されています。Version
これを行うための最良の方法は何ですか?理想的には、累積更新日も取得したいと思いますが、これは基本的にバージョン番号の別名にすぎません。
ありがとう
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を有効にした状態で、コードを右クリックして[管理者として実行]を選択してコードを実行する必要がありました。
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
データベースに接続してこのクエリを実行するだけです
SELECT SERVERPROPERTY ('productversion'),
SERVERPROPERTY ('productlevel'),
SERVERPROPERTY ('edition')
参照: http ://support.microsoft.com/kb/321185
お役に立てば幸いです