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任务启动时,libAlibB库会再次编译,因为exeWPF csproj文件引用了libA和libB项目。

另一种选择是将libAlibB作为项目引用,我可以在exeWPF csproj文件中将它们作为dll引用。问题是,在这种情况下,我丢失了代码,并导航到引用。

对我来说,解决方案是能够从MSBuild任务中指定对MSBuild项目的引用。

MsBuild:不编译引用的项目

您可以像这样构建exeWPF项目

msbuild exeWPF.csproj /p:BuildProjectReferences=false

属性BuildProjectReferences将阻止MSBuild生成引用,它将被迫使用预生成的程序集来提取引用的元数据,如果引用的程序集不存在,它将失败。