【发布时间】:2018-06-06 05:30:55
【问题描述】:
我已经为此苦苦挣扎了很长时间。
设置:
- c# 项目
- c++ 项目
-
c# 项目具有对 c++ 项目的引用,其中包含以下几行:
<ProjectReference Include="projectB.vcxproj"> <ReferenceOutputAssembly>false</ReferenceOutputAssembly> <OutputItemType>Content</OutputItemType> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </ProjectReference>
这适用于视觉工作室。 这在从命令行使用 devenv 时有效。 从命令行使用 msbuild 时 - c++ 项目的输出文件不会复制到 c# 项目的输出目录中。
我无法使用 msbuild 解决这个问题。读了很多关于它,没有任何工作。尝试使用 diag 详细程度进行调试 - 但 msbuild 和 visual-studio 的日志非常不同...... 我无法使用 devenv,因为构建机器没有有效的视觉工作室。
在带有诊断详细信息的 msbuild 日志中,我看到:
Target "GetCopyToOutputDirectoryItems" skipped. Previously built successfully.
这是视觉工作室日志中的位置 - 它看起来不同 - 实际上用于将引用的本机文件复制到 c# 输出目录。
也许与构建顺序有关?..
在 msbuild 日志中 - 我还看到:
Target "_CopyOutOfDateSourceItemsToOutputDirectoryAlways" skipped, due to false condition; ( '@(_SourceItemsToCopyToOutputDirectoryAlways)' != '' ) was evaluated as ( '' != '' ).
在visual-studio构建日志中,我看到这个目标被执行(它在GetCopyToOutputDirectoryItems目标之后)
【问题讨论】:
标签: build msbuild visual-studio-2017 devenv