我有以下客户端应用程序及其对应的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
答案 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