0

微软视觉工作室 2012;微软构建。

如果文件不存在,我会收到错误消息(错误 MSB4184)。我正在尝试设置一个条件,但它以无效的语法结尾......请从我的 proj 文件中找到以下代码:

<Target Name="Resources">
    <GenerateResource Condition = " $([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\resources&quot;,&quot;*.*&quot;, 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

我怎么解决这个问题?

谢谢你。

4

1 回答 1

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根据您的要求在标签中进行一些自定义。

于 2013-07-11T11:42:18.890 回答