【问题标题】:MSBuild: How can I force ProjectReference to search elsewhere for an assembly?MSBuild:如何强制 ProjectReference 在其他地方搜索程序集?
【发布时间】:2008-12-02 19:47:18
【问题描述】:

我们有大量包含相同共享 15 个项目的 Visual Studio 解决方案,大多数解决方案仅在 Web 应用程序上有所不同。

我正在尝试将所有内容整合到一个构建中,该构建只构建一次共享项目,然后让 Web 应用程序项目引用输出共享程序集。

我发现,由于 Web 项目通过 元素指向共享项目,因此我无法告诉它在我的自定义构建项目中的其他地方寻找程序集。我想使用类似的东西:

但这只有在 Web 项目通过 元素引用共享程序集的 dll 时才有效。似乎如果在 中找不到指向的内容,它不会尝试查看任何 ReferencePath 文件夹。它只是放弃了。

【问题讨论】:

  • 为什么不把所有的网络项目都转储到同一个解决方案中?
  • 我已经尝试过了,但尝试多次构建所有共享项目似乎会减慢速度
  • @ChadGilbert:你找到解决方案了吗?
  • @Rob - 这个问题是十一年前的问题,在 NuGet 存在之前。如果我今天遇到这个问题,我会将这些共享项目作为 NuGet 包发布到私有 NuGet 存储库,然后将它们作为包导入会很简单,并且编译时间会更快。

标签: msbuild build-automation tfsbuild


【解决方案1】:

您可能需要考虑从众所周知的位置引用 15 个共享程序集。

您可以创建一个包含 15 个项目的解决方案并将输出复制到特定文件夹。然后,您可以更改您的 Web 应用程序项目以引用程序集,而不是共享项目。

使用此方法会失去从 Web 应用解决方案自动重建共享项目的能力。如果您想在使用其中一个 Web 应用解决方案时自动重新构建 15 个程序集,您可以在您的 Web 应用解决方案中添加预构建步骤来构建新的共享项目解决方案。

【讨论】:

  • 我希望避免这种情况。我希望开发人员能够在开发过程中愉快地点击编译按钮一次,而不必先重新编译共享文件,然后再编译 Web。
猜你喜欢
  • 2010-11-19
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多