0

我有一个包含两个项目的解决方案: - projectA 有一个对 ServiceStack ormlite 的 nuget 引用 - projectB 有一个对 projectA 的引用

当我构建解决方案时,projectA 的 outdir 包含来自 nuget 包的所有程序集(4 个程序集),而 projectB 仅复制其中的 2 个。显然,当我启动它时,我得到一个FileNotFoundException. 我已经尝试添加private=true标志没有成功

我已经看到很多关于这个问题的引用,现在它对这里发生的事情感到非常困惑(似乎 msbuild 没有按照我认为是我唯一知道的方式处理引用:()。

知道可以做些什么来建立一个可靠的过程来构建我的解决方案吗?

4

1 回答 1

2

构建只会将 projectA 实际使用的程序集复制到 projectB 的输出文件夹,并导致在 projectA 的输出程序集中引用,而不管 projectA 引用了哪些程序集。

您可以使用 Reflector 或 ildasm 打开 projectA 的程序集,然后查看这 4 个程序集中只有 2 个实际使用和引用。

如果项目B 的程序集需要在运行时存在,请将对 NuGet 包的引用也添加到 projectB,或确保将它们复制。这篇文章展示了一个通用的解决方案,但我还没有尝试过。

于 2013-09-25T11:49:12.117 回答