给出一个解决方案:
>项目P1引用了P2
> P2引用了P3
> P3参考了P4
当你以这种方式调用msbuild时:
msbuild.exe /v:m "c:\mysolution\p1\p1.csproj"
如有必要,msbuild会检查所有项目依赖项是否构建依赖项.典型的输出是:
Microsoft (R) Build Engine Version 4.0.30319.1 [Microsoft .NET Framework,Version 4.0.30319.1] Copyright (C) Microsoft Corporation 2007. All rights reserved. P4 -> c:\mysolution\P4\bin\Debug\P4.dll p3 -> c:\mysolution\p3\bin\Debug\p3.dll p2 -> c:\mysolution\p2\bin\Debug\p2.dll p1 -> c:\mysolution\p1\bin\Debug\p1.dll
就我而言,我知道依赖存在并且没有问题.
你可以将/ p:BuildProjectReferences = false传递给msbuild,这将跳过构建项目的refence ..
但这有一个限制,如果您的解决方案配置和引用项目的配置不匹配,msbuild将无法解析引用项目的目标输出文件…
但这有一个限制,如果您的解决方案配置和引用项目的配置不匹配,msbuild将无法解析引用项目的目标输出文件…
这是一个免费的vs扩展包,你可以下载并试试
http://visualstudiogallery.msdn.microsoft.com/98de4058-8dc7-435b-9e01-c0f71dace808
vs package:Sharp Build Utility
我是这个扩展的作者,我对当前的工作有相同的要求,享受这个工具……
本质上,此扩展可以处理上述情况,它将生成构建项目文件的卷影副本,将所有项目引用更改为dll文件引用,并使用影子项目文件启动msbuild.