msbuild不复制引用的程序集

时间:2013-09-25 11:06:37

标签: msbuild

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

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

没有成功

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

知道可以采取哪些措施来建立我的解决方案?

1 个答案:

答案 0 :(得分:2)

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

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

如果程序集需要在运行时为projectB存在,那么也要将对NuGet包的引用添加到projectB,或者确保它们被复制。这篇文章显示了general-purpose solution,但我还没试过。