【问题标题】:Third-party referenced dll not been copied to build out未复制第三方引用的 dll 来构建
【发布时间】:2010-09-23 17:16:49
【问题描述】:

我有一个第三方 .net dll 被我的 dll/类库项目“A”引用和使用。我的控制台应用程序项目“B”引用了项目“A”。

我的问题是第三方 dll 没有被复制到控制台应用程序项目“B”的构建中。

这里有什么问题?在我的 dll/类库中引用的第三方 dll 设置为 LocalCopy=true。

我正在使用 vs2008 和 .net 3.5。

提前致谢

【问题讨论】:

    标签: c# .net visual-studio-2008 msbuild


    【解决方案1】:

    基本上,项目 B 需要显式引用第三方 DLL。引用不假定是可传递的。 (如果您尝试在项目 A 中使用任何暴露第三方库类型的类,您甚至会收到编译错误。)

    这可能会很痛苦,但至少它可以清楚地说明你真正拖入了什么。

    【讨论】:

    • 无论哪种方式,您都可以使用通用 OutDir 同时构建控制台应用程序 B 和库项目 A,您的第三方 dll 将在此处。
      另请注意,如果您已引用dll而不是项目,如果它与您的proj A dll位于同一目录中,它将复制第三方库。
    • 我有一个类似的设置,其中 Proj B 添加了 Proj A 的 PROJECT REFERENCE。这还不足以复制 Proj A 的所有输出(包括对 Proj B 的 outdir 的引用吗?)
    • @lysergic-acid:为什么项目 A 的输出会包含对项目 B 输出目录的引用?但是不,一般来说,当您添加对项目的引用时,我相信这只是到项目创建的程序集。
    • 我有一个 WCF 服务项目,它引用了一些 DLL (system.data.sqlite)。我有一个引用该服务的宿主项目(控制台)。这意味着我没有将 data.sqlite dll 复制到主机输出目录...
    • @lysergic-acid:不,你不会。 SQLite 程序集不是项目 输出 的一部分 - 如果您在另一个项目中需要它,您也必须添加对该项目的引用,就这么简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    相关资源
    最近更新 更多