我有以下项目结构:
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项目的引用。
答案 0 :(得分:6)
您可以像这样构建exeWPF
项目
msbuild exeWPF.csproj /p:BuildProjectReferences=false
属性BuildProjectReferences将阻止MSBuild构建引用,它将被强制使用预构建的程序集来提取引用的元数据,如果引用的程序集不存在,它将失败。