在解决方案中,我有一些依赖项目配置为SDK样式项目:
基于此,在Proj B编译上运行任务之前,应完全编译ProjA。 这两个项目具有不同的编译目标(NetStandard20和Net462)。因此,我无法直接引用,而是通过将属性AddSyntheticProjectReferencesForSolutionDependencies设置为false来进行解决方案范围内的项目依赖(否则msbuild试图使项目依赖变为强制)。
在该设置中,MsBuild有时在编译时失败:Proj A开始编译,但是Proj B运行任务时未及时完成。 在CI机器上使用/ m键启动MSBuild。
欢迎任何想法。
答案 0 :(得分:0)
在这种情况下,您实际上确实想要一个综合项目引用,但是如果具有依赖项的项目是多目标的,则MSBuild中目前存在一个细微的问题,该问题会在项目引用之间创建一些问题。这是fixed in 15.9。
请在Visual Studio预览版15.9中进行尝试(在撰写本文时:15.9预览版2)。
如果您不想等待,可以自己在csproj文件中添加类似的项目引用:
<ItemGroup>
<ProjectReference Include="..\other\project.csproj"
ReferenceOutputAssembly="false"
LinkLibraryDependencies="false"
CopyLocal="false"
SkipGetTargetFrameworkProperties="true"
GlobalPropertiesToRemove="TargetFramework"
/>
</ItemGroup>