msbuild未复制引用的程序集

msbuild未复制引用的程序集,msbuild,Msbuild,我有一个包含两个项目的解决方案: -projectA有一个对ServiceStack或MLite的nuget引用 -projectB引用了projectA 构建解决方案时,projectA的outdir包含来自nuget包的所有程序集(4个程序集),而projectB只复制其中的2个。显然,当我启动它时,我会得到一个FileNotFoundException。 我已经尝试添加private=true标志,但没有成功 我已经看到很多关于这个问题的引用,现在它对这里发生的事情感到非常困惑(看来msb

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

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

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


你知道怎样做才能有一个可靠的过程来构建我的解决方案吗?

构建只会将projectA实际使用的程序集复制到projectB的输出文件夹,并在projectA的输出程序集中产生引用,而不管projectA引用的是哪个程序集

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


如果程序集需要在运行时存在于projectB中,请将对NuGet包的引用也添加到projectB中,或者确保它们已被复制。本文显示了一个,但我没有尝试过。

是的,我实际上已经这样做了。我尝试避免这种做法,因为我的解决方案实际上包含数十个项目和相同数量的单元测试对象(它们也需要与您所建议的具有相同的处理方式)。感谢您的回答和链接,我只希望MS对这个问题进行排序,因为在我的情况下,许多依赖项都会出现问题(automapper、servicestack或MLite、servicestak接口等).I image projectA使用那些未复制的程序集,因为@Dave说他得到
FileNotFoundException