MSBuild - 基于平台复制文件

时间:2014-03-26 13:43:34

标签: c# .net visual-studio msbuild

我有一些本机dll有两种版本 - 为x86和x64构建。根据我的项目平台配置,我想将正确的dll复制到文件夹中。

我尝试了什么

<ItemGroup>
    <_nativex86 Include="native\myNativex86folder\*.*" />
    <_nativex64 Include="native\myNativex64folder\*.*  />
</ItemGroup>

<Target Name="AfterBuild">
    <Copy Condition="$(Platform) == x86"
        SourceFiles = "$(_nativex86)"
        DestinationFolder = "$(OutputPath)native" />
    <Copy Condition="$(Platform) == x64"
        SourceFiles = "$(_nativex64)"
        DestinationFolder = "$(OutputPath)native" />
</Target>

然而,没有任何东西被复制。我该怎么办?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

<ItemGroup>
    <_nativex86 Include="native\myNativex86folder\*.*" />
    <_nativex64 Include="native\myNativex64folder\*.*  />
</ItemGroup>

<Target Name="AfterBuild">
    <Copy Condition=" '$(Platform)' == 'x86' "
        SourceFiles = "$(_nativex86)"
        DestinationFolder = "$(TargetDir)native" />
    <Copy Condition=" '$(Platform)' == 'x64' "
        SourceFiles = "$(_nativex64)"
        DestinationFolder = "$(TargetDir)native" />
</Target>

我为Condition中的值添加了引号。

您还可以尝试使用$(SolutionDir)$(ProjectDir)$(OutputPath)等,根据文件所在的位置)添加“原生”路径,以使其成为可能完整路径。