5月 2009 - Posts

VSTO の動画チュートリアル

msdn の VSTO Development CenterHow Do I Videos というコンテンツがあります。
動画によるチュートリアルなので VSTO 開発の雰囲気をつかむのに役立つと思います。

おすすめは How Do I: Use the VSTO Power Tools Ribbon ID Tool Window? です。
リボン開発に役立つ RibbonID VSTO Power Tool の使い方を紹介してくれます。

VSTO Power Tool についてはこちらも。

Posted by Ryosuke Uemoto | with no comments
Filed under:

Community Server を 2007 から 2008.5 SP1(最終的に SP2) にアップグレード

久々に Community Server をアップグレードしました。

元が Community Server 2007.x(細かいことは憶えていない) + SQL Server 2000。
新しい環境はCommunity Server 2008.5 SP2 + SQL Server 2005。

かめたろさんのブログ記事と原水さんの Wiki 記事を参考にしました。

かめたろさんの記事からは SQL Server のバージョンに注意という大きなヒントを頂きました。
が、すんなりとはいかず、アップグレードの処理中にエラーが発生しました。

2009/05/28 19:20:42 -- Executing sproc cs_Wiki_GetPageRevision.prc
2009/05/28 19:20:42 -- EXCEPTION: 列名 'Tags' が無効です。
   場所 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   場所 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   場所 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   場所 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   場所 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
   場所 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   場所 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   場所 CommunityServer.Upgrader.Part4.ExecuteSqlNonQuery(String sql, SqlConnection connection)
   場所 CommunityServer.Upgrader.Part4.UpdateSprocs()

2009/05/28 19:39:19 -- Executing sproc cs_Points_CalculateForUser.PRC
2009/05/28 19:39:19 -- EXCEPTION: 列名 'RevisionNumber' が無効です。
列名 'RevisionNumber' が無効です。
   場所 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   場所 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   場所 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   場所 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   場所 System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
   場所 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
   場所 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   場所 CommunityServer.Upgrader.Part4.ExecuteSqlNonQuery(String sql, SqlConnection connection)
   場所 CommunityServer.Upgrader.Part4.UpdateSprocs()

エラーが発生したストアドプロシージャを調べてみると、例外メッセージにある通り、稼働中の DB には存在しない列を参照しているようでした。

結局、問題の発生したテーブルを手動で削除した後、スキーマの準備ツールでテーブルを作成し直すことで解決しました。