20

私はSharepointアプリケーションを開発しており、.NET AjaxControlToolkitライブラリを使用しており、Sharepointにカスタムaspxページを追加しています。Sharepoint 2007はクァークズモードで実行されるため、AJAXライブラリにいくつかの変更を加えて、通常どおりに動作するようにしました。問題は、他のチームがすでにAJAXライブラリを使用していて、それが私のものとは異なるバージョンであるということです。binフォルダーには同じ名前のdllが1つしかないため、これにより競合が発生しました。

私の知る限り、.NETはこの状況を簡単に処理できるはずです。厳密な名前とGACを使用して解決しようとしましたが、それでもbinフォルダー内のdllを参照しています。binフォルダーにAjaxControlToolkit.dllがない場合、アプリケーションは単にアセンブリのロードに失敗します。

このように完全なアセンブリ情報を使用する場合

<%@ 
    Register 
    tagprefix="AjaxControlToolkit"
    namespace="AjaxControlToolkit"
    assembly="AjaxControlToolkit, Version=1.0.299.18064, 
    PublicKeyToken=12345678abcdefgh, 
    Culture=neutral"
%>

コンパイラエラーCS0433が表示されます

アプリケーションで複数のバージョンのアセンブリを使用する方法について誰かが私を助けてくれますか?

4

1 に答える 1

5

Compiler Error CS0433のリンクは、コアの問題が参照されているアセンブリの複数のバージョンではなく、名前空間 + タイプ名の競合であることを明確に示しています。

型をロード/参照すると、コンパイラはその型をロードする DLL を解決できません。Sharepoint が両方のバージョンの DLL をロードしようとしている場合 (あなたが言うように)、このエラーは常に発生します。

最も簡単な修正は、新しい DLL の名前空間を変更することです。これは、カスタムの微調整があり、コードを制御するため、明確にマークすることもできます。

于 2013-07-22T14:33:33.430 に答える