MsBuild:不要编译引用的项目

时间:2013-02-12 10:39:11

标签: c# .net msbuild compilation nant

我有以下项目结构:

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项目的引用。

1 个答案:

答案 0 :(得分:6)

您可以像这样构建exeWPF项目

msbuild exeWPF.csproj /p:BuildProjectReferences=false

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