MsBuild:不编译引用的项目
本文关键字:项目 引用 编译 MsBuild | 更新日期: 2023-09-27 17:58:51
我有以下项目结构:
SLN
libA
libB (references libA)
exeWPF (references libA and libB)
我使用NAnt与csc一起编译libA和libB,但我不能将csc与WPF项目一起使用,XAML目标不能与NAnt一起编译,所以我在NAnt项目中使用MSBuild任务。
问题是,当我启动一个完整的构建时,libA和libB已经通过NAnt,然后当MSBuild任务启动时,libA
和libB
库会再次编译,因为exeWPF
csproj文件引用了libA和libB项目。
另一种选择是将libA
和libB
作为项目引用,我可以在exeWPF
csproj文件中将它们作为dll引用。问题是,在这种情况下,我丢失了代码,并导航到引用。
对我来说,解决方案是能够从MSBuild任务中指定对MSBuild项目的引用。
您可以像这样构建exeWPF
项目
msbuild exeWPF.csproj /p:BuildProjectReferences=false
属性BuildProjectReferences将阻止MSBuild生成引用,它将被迫使用预生成的程序集来提取引用的元数据,如果引用的程序集不存在,它将失败。