0

Visual Studio から同じ CLR データベース関数を Staging と Live db インスタンスの両方に公開しました。どちらもバージョン 11.0.2100.60 の同じ MS SQL Server 上に存在します。

どちらも正常にインストールされますが、Live で同じ機能を実行すると、次のエラー メッセージが表示されます。

Msg 6522, Level 16, State 1, Line 1
A .NET Framework error occurred during execution of user-defined routine or aggregate "RankWords": 
System.IO.FileLoadException: Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ---> System.IO.FileLoadException: The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
System.IO.FileLoadException: 

System.IO.FileLoadException: 
   at net.johnhenry.lib.search.SearchAndRankingHelper.RankWords(String original_text, String words_being_searched, Int32 min_search_words_length, Boolean is_default_behaviour_and, Boolean is_partial_match)
   at SqlClrExtension.UserDefinedFunctions.RankWords(String original_text, String words_being_searched, Int32 min_search_words_length, Boolean is_default_behaviour_and).

何かアドバイス?

4

1 に答える 1

0

このトピックに関する最も難解なサイトを一日中検索した後、最終的に問題を解決することができました! :)

私は既存のアセンブリの上に再公開し続け、設定を少し調整するだけでしたが、これを行うと、Visual Studio は、新規インストールの場合のように CLR コードをインストールするための SQL スクリプト全体を生成しませんが、VS が考える SQL スクリプトのみを生成します変更されました。

解決策は、アセンブリとそのすべての依存関係を削除して、新たに再発行することでした!

Visual Studio の Publish 関数は、CLR コードをインストールするために必要なSQL スクリプト全体を生成します。これにより、ライブラリの登録が不適切であると思われる問題が解決されました。

.

于 2013-06-17T15:36:43.750 に答える