我刚刚和MSBuild碰到了一个奇怪的情况.有一个解决方案有三个项目:LibX,LibY和Exe.exe引用LibX.LibX反过来引用了LibY,有一些内容文件,还引用了第三方库(在GAC和本地lib文件夹中安装了几个预构建的程序集).第三方库被标记为"复制本地"("私有")并出现在LibX项目的输出中,如LibY的输出和LibX的内容文件那样.现在,Exe项目的输出有LibX项目输出,LibX项目的内容文件,LibY项目输出(来自LibX),但没有第三方库的程序集.
现在我通过直接在Exe项目中引用第三方库来解决这个问题,但我觉得这不是一个"正确"的解决方案.
以前有人有这个问题吗?
与使用Visual Studio构建相比,使用MSBuild(即命令行,TFS构建和其他工具)构建时的行为存在差异.辅助引用不包含在发送到MSBuild编译任务的引用变量中.
MSBuild提供了几个扩展点来更改引用的解析方式.我已经成功使用AfterResolveReference来解决我的一些项目的问题 - 我在博客上发布了更多关于背景的信息.
解决方法是将以下代码添加到vbproj或csproj文件中
微软已声明这不会修复Connect