我的问题是试图弄清楚如何从任意位置加载.NET程序集。在我的情况下,我不想使用子目录(排除探测路径方法)或GAC。子目录方法会导致存储多个副本,因为多个调用者使用该程序集。 GAC情景是一个较长期的答案,但在采取这种方法时会发生一些努力。对于Visual Studio 2010,我将GAC用法看作具有以下主要选项:内置安装程序受到了很多批评,InstallShield Limited版本非常好,但似乎并不支持GAC(付费InstallShield版本当然是这样) ,并且WiX被认为具有使用的学习曲线。使用.config文件中的codebase元素从任意路径加载程序集
我提到了关于GAC的所有内容,主要是因为许多问过这个问题的人总是看到GAC的方向。这很令人沮丧,因为代码库元素似乎正是我对强命名调用者和调用程序集所期望的。 我app.config文件看起来是这样的:
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/></startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft.com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="SharedProgramTest"
Culture="neutral"
PublicKeyToken="c422f85319da5fe0"
/>
<codeBase version ="1.0.0.1"
href="file:///D:/SomewhereElse/SharedProgramTest.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
感谢, 约翰·维格尔
你什么错误,什么是融合日志的输出? http://bartdesmet.net/blogs/bart/archive/2006/10/23/Assembly-probing_2C00_-Fusion-and-fuslogvw-in-5-minutes.aspx http://blogs.msdn.com/b/thottams /archive/2007/06/02/debugging-load-problems-using-fusion-log.aspx – 2011-06-24 20:30:16