2

約 200 の Web サイトを持つサーバーがあり、すべてが同じアセンブリからコードを実行しています。したがって、効率を高めるために、アセンブリはバージョン番号 1.0.0.0 で gac に登録されています。彼らは、コードが gac にあるものとは異なる開発サイトを作成したいと考えています。このソリューションは複数のプロジェクトで構成されており、そのうちの 1 つは Web アプリケーションであり、他の 3 つの C# ライブラリ プロジェクトを参照しています。4 つのプロジェクトのバージョンをすべて 1.0.0.0 から 1.0.0.1 に更新し、新しくコンパイルしたファイルを他のすべてのサイトと同じサーバーの開発フォルダーにプッシュしました。私が読んでいたことから、これにより、その開発サイトは、バージョンのインクリメントにより、gac にあるものではなく、ローカルの bin ディレクトリにある dll を使用するようになります。ただし、これを実行すると、global.asax からエラーが発生します ...

タイプ 'CMIWeb.Global' はあいまいです: アセンブリ 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\CMIWeb\v4.0_1.0.0.0__671ea09b8c72436a\CMIWeb.dll' から、またはアセンブリ 'D:\ Inetpub\wwwroot\cmidev\bin\CMIWeb.DLL'. 型名でアセンブリを明示的に指定してください。

これを回避する方法がわかりません。

編集: これは、web.config ファイルへの bindingRedirect の追加です。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

        <dependantAssembly name="CMIWeb" PublicKeyToken="671ea09b8c72436a" culture="en-us" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.0.1" />

        <dependantAssembly name="CMIBLL" PublicKeyToken="16740601ec0c3aab" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.0.1" />

        <dependantAssembly name="CMIData" PublicKeyToken="6016b538121b0f75" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.0.1" />

        <dependantAssembly name="CMIObjects" PublicKeyToken="110dd5d29fab7114" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.0.1" />

        <dependantAssembly name="CMISettings" PublicKeyToken="90ce34438590d2f3" />
        <bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.0.1" />

    </assemblyBinding>
</runtime>

これがうまくいかなかったとき、私も以下を追加しようとしましたが、それでも同じエラーが発生します。

<compilation debug="true" targetFramework="4.0">
      <assemblies>
          <add assembly="CMIBLL, Version=1.0.0.1, Culture=neutral, PublicKeyToken=16740601ec0c3aab" />
          <add assembly="CMIData, Version=1.0.0.1, Culture=neutral, PublicKeyToken=6016b538121b0f75" />
          <add assembly="CMIObjects, Version=1.0.0.1, Culture=neutral, PublicKeyToken=110dd5d29fab7114" />
          <add assembly="CMISettings, Version=1.0.0.1, Culture=neutral, PublicKeyToken=90ce34438590d2f3" />
          <add assembly="CMIWeb, Version=1.0.0.1, Culture=neutral, PublicKeyToken=671ea09b8c72436a" />
      </assemblies>
  </compilation>
4

0 に答える 0