MSBuild在_CopyOutOfDateSourceItemsToOutputDirectory期间复制依赖项目文件

Mar*_*nix 8 c# msbuild solution visual-studio

我有一个C#项目,它使用sln文件中的Project Dependencies 来确保构建顺序正确.

所以我在我的sln文件中,ProjectB依赖于ProjectA.

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectB", "ProjectB.csproj", "{E24EAC46-1563-4E73-9411-3F9D2645F77C}"
    ProjectSection(ProjectDependencies) = postProject
        {4A7D6720-4AA1-4F0B-A796-A0436DB3D7D7} = {4A7D6720-4AA1-4F0B-A796-A0436DB3D7D7}
    EndProjectSection
EndProject
Run Code Online (Sandbox Code Playgroud)

ProjectA有一些设置的内容CopyIfNewer.

当我使用Visual Studio构建它时,ProjectA转到它自己的bin文件夹,ProjectB转到它自己的bin文件夹.

但是当我使用MSBuild构建它时,ProjectA的内容也会以某种方式出现在ProjectB的输出文件夹中!

构建日志显示[ProjectB.csproj] _CopyOutOfDateSourceItemsToOutputDirectory复制文件.

我的问题是:我如何告诉MSBuild文件不属于该项目而不必复制?

作为一种解决方法,我将ProjectA添加为ProjectReferencewith <Private>False</Private>,这似乎有效,但这不是我想要的解决方案.

小智 0

我认为您所描述的解决方法是目前您能找到的最佳解决方案。

作为解决方法,我将 ProjectA 添加为带有 False 的 ProjectReference,这似乎有效,但这不是我想要的解决方案。