【问题标题】:Place assemblies in different directory with Copy Local使用 Copy Local 将程序集放在不同的目录中
【发布时间】:2013-02-21 12:14:54
【问题描述】:

我目前正在 Visual Studio 2010 中处理 C# 项目,我需要使用程序集。我把它作为一个项目添加到我的解决方案中,并让它在本地构建并复制到我的主项目的输出文件夹中。

问题是,为了整洁,我想要它以便程序集进入 bin/Debug/assemblies 而不是 bin/Debug,并且该程序集的引用使用它。

这有可能吗?

【问题讨论】:

    标签: c# visual-studio-2010 .net-assembly


    【解决方案1】:

    这种“整洁”是一个非常糟糕的主意。 CLR 不知道在哪里查找这些程序集,并且如果没有 app.exe.config 文件就找不到它们。您需要提供一个带有命名子目录的<probing> 元素。您还需要一个构建后事件来使用 mkdir 和 xcopy 创建目录来复制文件。

    如果这听起来像是要跳过的圈太多,那是因为 DLL Hell 是您永远不想搞砸的东西。 CLR 和构建系统都强烈反对它。只有两个地方 CLR 认为是明确的,GAC 和包含启动 EXE 的目录。其他任何事情都需要额外的步骤来让 CLR 相信你不是不小心开枪的。

    【讨论】:

      【解决方案2】:

      只需在项目的属性中将输出路径设置为 bin\Debug\assemblies 或您喜欢的任何内容。

      【讨论】:

      • 但随后所有文件(包括应用程序exe)都会放在bin\Debug\assemblies下。
      • 这不是他要求的吗?
      • 我了解到 OP 要求在 bin\Debug\assemblies 文件夹中放置 一个 程序集。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多