如何在配置文件中指定程序集的确切位置

时间:2009-03-03 08:19:58

标签: .net asp.net configuration

我有一个Web应用程序和相应的web.config。应用程序依赖于程序集,这些程序集位于特定路径中的系统上(例如c:\ programms \ myprog \ bla.dll),但未在GAC中注册。如何告诉我的Web应用程序在哪里找到它依赖的这些程序集?我想我可以在web.config中的某个地方做到这一点。但是如何?

提前致谢!

5 个答案:

答案 0 :(得分:6)

Assembly Binding Redirection上查看此文章。

基本上你应该把它添加到配置文件中:

<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705">
            <dependentAssembly> 
               * assembly information goes here *
            </dependentAssembly>
       </assemblyBinding>
</runtime>

答案 1 :(得分:1)

您应该使用http://msdn.microsoft.com/en-us/library/efs781xb(VS.71).aspx中给出的codebase元素,即使文章说href,它也可以用于本地路径

答案 2 :(得分:1)

为什么要将程序集存储在1个特定位置?出于调试目的?您还可以添加提示路径以进行调试。添加一个文件引用,使其复制local = true。程序集查找首先在debug \ bin文件夹(应用程序库)中是本地的。

答案 3 :(得分:1)

尽可能始终将您的程序集存储在GAC中。它的行为类似于您现在使用的单个目录,并具有并行部署的额外优势!

答案 4 :(得分:0)

用于注册自定义控件和用户控件:

<system.web>
    <pages>
      <controls>
        <add assembly="WebApp.CustomControl"
                namespace="WebApp.CustomControls"
                tagPrefix="cc" />
      </controls>
    </pages>
</system.web>

注册程序集:

<assemblies>
  <add assembly="WebApp.Util, Version=1.0, Culture=neutral, PublicKeyToken=f573aa5672ce4fd2"/>
</assemblies>

希望这有帮助!