【问题标题】:What is the difference between specifying a dependentAssembly in app.config and reference a dll in a .net project?在 app.config 中指定dependentAssembly 和在 .net 项目中引用 dll 有什么区别?
【发布时间】:2020-03-05 09:25:20
【问题描述】:

我在 Visual Studio 2013 中有一个用 VB.NET 制作的 .NET windows 服务。在这个项目中,我引用了一些 DLL,在 app.config 中,我将其他一些定义为dependentAssembly(我没有制作这个项目)。

当我编译这个项目时,app.config 中指定的依赖程序集不会被复制到输出目录(根据情况进行调试或发布)。

我的问题是:

  1. 在 app.config 中指定依赖程序集和引用 DLL 有什么区别?
  2. 为什么在编译时 app.config 中指定的依赖程序集没有被复制到输出目录(调试或发布)?
  3. 我可以在编译时强制 Visual Studio 将 app.config 中指定的依赖程序集复制到 outut 目录(调试/发布)吗?

【问题讨论】:

  • 这个问题似乎是基于对 app.config 是什么的一个非常错误的想法。它在构建时没有任何作用,只有运行时。你遇到的真正问题是无法猜测的。
  • @HansPassant 好的,但为什么会有依赖程序集?我想知道它们是在 app.config 中手动添加的还是 nuget 添加的?据我所知,nuget 不会在 app.config 中添加任何内容,对吧?此外,如果将依赖程序集添加到 app.config,我是否有责任在部署我的应用程序时手动将这些程序集复制到相应文件夹(因为这些程序集不会自动复制)?
  • 为什么投反对票?

标签: vb.net visual-studio dll .net-4.5 .net-assembly


【解决方案1】:

这里是我找到的有关dependentAssembly 的相关信息。 App.config 不应用于 dll,而只能用于可执行文件。

如果一个dll被加载到一个可执行文件中,这个dll会使用正在运行的可执行文件的配置文件,并且会忽略为他定义的配置。

如果您愿意,您可以使用一些丑陋的代码来读取配置的键,这些代码从当前程序集的配置文件中获取它们。

你应该做的是将相关配置放入exe配置文件中。您可以在this link查看更多详情。

【讨论】:

    猜你喜欢
    • 2012-06-30
    • 1970-01-01
    • 2010-12-17
    • 2010-09-30
    • 1970-01-01
    • 2011-05-16
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多