Dan*_*lba 3 .net c# msbuild nant compilation
我有以下项目结构:
SLN
libA
libB (references libA)
exeWPF (references libA and libB)
Run Code Online (Sandbox Code Playgroud)
我使用NAnt用csc编译libA和libB,但我不能将csc与WPF项目一起使用,XAML目标无法用NAnt编译,所以我在NAnt项目中使用了MSBuild任务.
问题是当我启动一个完整的构建时,libA和libB已经由NAnt,然后当启动MSBuild任务时,再次编译libA和libB库,因为csproj文件引用了libA和libB项目.exeWPF
替代方案可以是引用libA,libB作为项目,我可以在exeWPFcsproj文件中将它们作为dll引用.问题是在这种情况下我松开了代码并导航到引用.
对我来说,解决方案是能够从MSBuild任务中指定对MsBuild项目的引用.
您可以exeWPF像这样构建项目
msbuild exeWPF.csproj /p:BuildProjectReferences=false
Run Code Online (Sandbox Code Playgroud)
属性BuildProjectReferences将阻止MSBuild构建引用,它将被强制使用预构建的程序集来提取引用的元数据,如果引用的程序集不存在,它将失败.