MS Visual Studio 2012;的MSBuild。
如果文件不存在,我收到错误(错误MSB4184)。我试图设置一个条件,但它以无效的语法结束...请从我的proj文件中找到以下代码:
<Target Name="Resources">
<GenerateResource Condition = " $([System.IO.Directory]::GetFiles("$(MSBuildProjectDirectory)\resources","*.*", System.IO.SearchOption.AllDirectories)::Length) != 0 "
Sources="$(MSBuildProjectDirectory)\resources\**\*.*">
<Output TaskParameter="OutputResources"
ItemName="Resources"/>
</GenerateResource>
</Target>
这个条件就像:
System.IO.Directory.GetFiles("$(MSBuildProjectDirectory)\resources","*.*", System.IO.SearchOption.AllDirectories).Length
我该如何解决这个问题?
谢谢。
答案 0 :(得分:0)
我认为您可以使用Condition
和ItemGroup
声明进行检查,如下所示:
<Target Name="Resources">
<ItemGroup>
<PackageFiles Include="$(MSBuildProjectDirectory)\resources\**\*.*;"/>
</ItemGroup>
<GenerateResource Condition="Exists('%(PackageFiles.FullPath)')" Sources="@(PackageFiles)">
<Output TaskParameter="OutputResources" ItemName="Resources"/>
</GenerateResource>
</Target>
根据您的要求,您可能需要在Output
标记中进行一些自定义。