2011-08-12 5 views
3

web.config内で、GACにDLLを持たずにロードする特定のDLLのローカルファイルパスの場所を設定することは可能ですか?C:\Windows\System32です。web.configでロードするDLLの場所を設定します。

これにより、Webサービスを展開するのがずっと簡単になり、いずれかを使いこなす必要がなくなります。

私はすでにDLLをプロジェクトに追加しようとしましたが、成功しませんでした。これらは、4つのOracleインスタント・クライアントDLLです。

  • OCI.DLL
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociicus11.dll

誰もが素晴らしいことだこれを行う方法を知っている場合。

EDIT: DLLは「厳密に名前が付けられている」ので、公開鍵を使用して参照することはできません。

また、現在追加していないため、プロジェクトで直接参照されません。

+1

彼らは、Webサービスの 'bin'ディレクトリに配置することはできません任意の理由は? – Oded

+0

@Oded - ビンにそれらを置くことは機能していないようです。 ASP.NETが直接参照していないため、ASP.NETが使用するパスとは関係ありません。 – tgandrews

答えて

1

dependentAssembly要素を使用して、dllのどの部分がcodeBase要素に存在するかを指定できます。

しかし、これは有効なURLである必要があります。 MSDNから

例:

<configuration> 
    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="myAssembly" 
           publicKeyToken="32ab4ba45e0a69a1" 
           culture="neutral" /> 
      <bindingRedirect oldVersion="1.0.0.0" 
          newVersion="2.0.0.0"/> 
      <codeBase version="2.0.0.0" 
         href="http://www.litwareinc.com/myAssembly.dll"/> 
     </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 
+0

これはローカルファイルパスを使用して動作しますか?それとも別のものを使う必要がありますか? – tgandrews

+0

@tgandrews - 有効なURLである必要があります。ローカルのもの(おそらく 'file:///'プロトコルで)を使うことができるかもしれません。 – Oded

1

プロービングパスは、アプリケーションがアセンブリを探すべき場所を指定しましょう。これはGACに物事を置くことに影響しませんが、あなたはbinフォルダにすべてを格納する代わりの方法を提供します。

http://msdn.microsoft.com/en-us/library/823z9h8w.aspx

+0

ビンにDLLを置くことが機能していないように見えるので、これはASP.NETで動作しますか? – tgandrews

関連する問題