为什么我的App.Config代码库无法帮助.NET找到我的程序集?

时间:2009-04-14 17:12:58

标签: .net .net-assembly codebase

我有以下客户端应用程序及其对应的config文件:

namespace Chapter9
{
    class Program
    {
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ExecuteAssembly("AssemblyPrivate.exe");
        }
    }
}

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <codeBase href="file://C:\Users\djpiter\Documents\Visual Studio 2008\Projects\70536\AssemblyPrivate\bin\Debug\AssemblyPrivate.exe"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

AssemblyPrivate.exe没有公钥,也没有位于GAC中。据我所知,运行时应解析app.config文件,然后在客户端应用程序目录中查找程序集。

未处理的异常(为了可读性而包装)是:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly
'file:///C:\Users\djpiter\Documents\Visual Studio 2008\Projects\70536\Chapter9\bin\Debug\AssemblyPrivate.exe'
or one of its dependencies. The system cannot find the file specified.

为什么它不起作用?我需要使用动态绑定(而不是静态)。

亲切的问候, PK

2 个答案:

答案 0 :(得分:0)

不要忽视“或其中一个依赖”。您确定所有AssemblyPrivate.exe的依赖项都可用吗?

答案 1 :(得分:0)

您现在可能已经解决了这个问题,所以仅供参考:

我相信你错过了一个“assemblyIdentity”元素。如果你在codeBase元素之外另外指定它,它应该可以工作。

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="office"
                  publicKeyToken="71e9bce111e9429c" />
        <codeBase href="Microsoft.Office.Interop.v11.dll" version="11.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

请参阅http://msdn.microsoft.com/en-us/library/b0yt6ck0%28v=VS.100%29.aspx