MSBuild:无法将dll文件复制到临时文件夹

时间:2017-11-29 15:16:27

标签: msbuild

以下msbuild脚本未将Com.Library.Shared.dll复制到c:\tmp\。为什么呢?

<PropertyGroup>
    <DllFiles>$(MSBuildProjectDirectory)\bin\Debug\Com.Library.Shared.dll</DllFiles>
</PropertyGroup>  
<Target Name="AfterBuild">   
        <Copy 
        SourceFiles="@(DllFiles)" 
        DestinationFiles="@(DllFiles->'c:\tmp\%(Filename)%(Extension)')" /> 
</Target>

1 个答案:

答案 0 :(得分:1)

商品访问语法@()%()仅适用于商品,不适用于商品。

如果您将PropertyGroup更改为ItemGroup,您的目标应该有效:

<ItemGroup>
   <DllFiles Include="$(MSBuildProjectDirectory)\bin\Debug\Com.Library.Shared.dll" />
</ItemGroup>

在csproj / vbproj文件的上下文之外进行测试的完整示例:

<Project DefaultTarget="Build">
  <Target Name="Build">
    <ItemGroup>
       <DllFiles Include="test.file" />
    </ItemGroup>  
        <Copy 
        SourceFiles="@(DllFiles)" 
        DestinationFiles="@(DllFiles->'c:\tmp\%(Filename)%(Extension)')" /> 
  </Target>
</Project>