【问题标题】:How can the Visual Studio build output location be specified for referenced assemblies?如何为引用的程序集指定 Visual Studio 生成输出位置?
【发布时间】:2011-09-15 07:22:23
【问题描述】:

我有一个包含 .NET 3.5 和 4.0 项目的混合解决方案。 3.5项目因外部依赖无法升级。

该解决方案使用简单的插件机制,我已将所有项目的输出路径设置为解决方案文件夹中的公共 bin 文件夹,以便在调试时可以发现和加载插件程序集。

我有引用第 3 方程序集的 .NET 3.5 项目和引用同一程序集的 4.0 版本的 .NET 4.0 项目,该程序集的文件名与 3.5 版本相同。当我构建时,第 3 方程序集的一个版本会覆盖另一个版本。

我希望将这些依赖项输出到不同的子文件夹,这样我就可以在 config 中设置探测私有路径,但我看不到如何在构建过程中执行此操作。

【问题讨论】:

    标签: visual-studio-2010 msbuild external-assemblies


    【解决方案1】:

    在覆盖被引用程序集的所有项目中,在所有使用被引用程序集的项目中对该引用使用 CopyLocal: None 属性选项,并使用构建事件将该程序集从它是您的主要构建解决方案中的原始路径,到达插件所需的位置。这将在主构建后仅复制一次插件所需的 dll。

    【讨论】:

    • 谢谢,我正在考虑这个问题,但认为可能有更好的方法。我将使用此解决方案,但有一点不同 - 我的构建后事件会将文件从输出文件夹移动到子文件夹,而不是返回到程序集的原始位置。这样,程序集的原始位置只存储在
    • 为解决方案创建新配置;对于每个项目,将构建部分的项目属性中的输出构建目录设置为 ..\bin\public 等,具体取决于您的项目针对解决方案文件夹的相关深度位置。在构建后事件中,使用 $(SoultionDirectory)\bin\public 文件夹,指向与程序集相关的其他操作的相同输出文件夹。您不会被固定在 位置。首先,将所有 程序集放在 $(SoultionDirectory)\bin\public 位置。其次,从新文件夹位置重用项目的程序集引用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 2015-10-31
    • 2014-03-16
    • 2014-12-13
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多