我有一个可执行文件,例如我从 C: 运行该文件。该可执行文件引用另一个目录中的一些 DLL,例如 C:\MyDLLs。问题是,这些引用的 DLL 再次依赖于存储在另一个目录中的其他 DLL。我可以告诉 Visual Studio 在哪里查找这些丢失的 DLL 吗? 非常感谢!
最佳答案
您可以通过在配置中设置这些值来引用应用程序程序集加载规则之外的程序集。这是来自 this Microsoft KB article 的示例配置文件:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="MyAssembly2" culture="neutral" publicKeyToken="307041694a995978"/>
<codeBase version="1.0.1524.23149" href="FILE://C:/Myassemblies/MyAssembly2.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
您使用<codeBase>
元素来告诉您的应用程序要查找的位置。
您必须对程序集进行强命名(使用 sn.exe 工具)才能使其正常工作。
了解运行时 resolves assembly references 的运行方式也很有用。也许你可以利用这一点,而不是经历所有的困难来使用 <codeBase>
.
关于c# - 如何在 Visual Studio/C# 中定义 DLL 依赖项的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3560605/