未分類

PowerShell - Google API の DLL を .NET の GAC に登録する

Goolge API を PowerShell で使用するためには、Google_Data_API_Setup(1.4.0.2).msi のインストールが必要です。http://code.google.com/p/google-gdata/downloads/list

しかし、インストールだけでは .NET の GAC (Global Assembly Cache) に登録されていないので、実際に API を使用する際には、DLL を読み込む必要があります。

[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.AccessControl.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Apps.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Calendar.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Client.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.CodeSearch.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Contacts.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Documents.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Extensions.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.GoogleBase.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Health.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Photos.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Spreadsheets.dll")
[System.Reflection.Assembly]::LoadFrom("C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.YouTube.dll")

特にこれでも問題ない (GAC に登録する必要もない) のだが、GAC に登録して API を使用するにはには次のコマンドを実行する。尚、PowerShell IDE でも実行可能だが、IDE を管理者として実行しておく必要です。

cd "C:\Program Files (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.AccessControl.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Apps.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Calendar.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Client.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.CodeSearch.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Contacts.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Documents.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Extensions.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.GoogleBase.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Health.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Photos.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.Spreadsheets.dll" .\gacutil.exe -i
"C:\Program Files (x86)\Google\Google Data API SDK\Redist\Google.GData.YouTube.dll"

実際に登録されているかを確認するには、C:\Windows\assembly をエクスプローラーで開いてみる。これで、次のようにアセンブリをロードできる。

[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.AccessControl")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Apps")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Calendar")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Client")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.CodeSearch")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Contacts")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Documents")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Extensions")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.GoogleBase")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Health")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Photos")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.Spreadsheets")
[System.Reflection.Assembly]::LoadWithPartialName("Google.GData.YouTube")

-未分類