c# - 如何在 Visual Studio/C# 中定义 DLL 依赖项的工作目录

标签 c# visual-studio-2008 working-directory dll-reference

我有一个可执行文件,例如我从 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/

相关文章:

c# - Application.EnableVisualStyles() 有什么作用吗?

task - Gulp 更改整个任务的工作目录

c# - MySQL .NET 连接器 6.9.8

java - 将带有 'Class<? extends Something>' 参数的 Java 泛型方法转换为 C# 实现

c# - WPF 窗口最大化导致项目错位

java - C# 中的时间戳值与 java 中的时间戳值不同

visual-studio - 如何在 Visual Studio 2008 中撤消 'exclude from project'

c++ - 在 Release模式下,代码行为不如预期

scala - 如何获取 Scala 中的当前(工作)目录?

git - 在 Git 中,索引的用途是什么?