以下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>
答案 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>