在VS2010 Web部署项目中ExcludeFromBuild失败

我有一个行为不端的Web部署项目。我继承了一个包含大量.pdf文件的App_Data文件夹。某些文件名包含无效字符且过长。在我的部署项目文件中,我在最后包含以下ItemGroup:
...
  <ItemGroup>
    <ExcludeFromBuild Include="$(SourceWebPhysicalPath)***.pdf" />
  </ItemGroup>
</Project>
但是当我构建项目时,我不断收到以下错误:
error : Copying file $([System.IO.Path]::Combine($(_WDPSourceWebPhysicalPath),
  App_DataCWM2393S097 Connection of an Embedded Network to elided's Network v1.pdf))
  to objDebugSourceApp_DataCWM2393S097 Connection of an Embedded Network to
  elided's Network v1.pdf failed. The path is not of a legal form.
我已经尝试将通配符添加到App_Data文件夹,但它只是无法正常工作。我想可以想象msbuild无法匹配这些文件以进行排除,因为文件名无效。救命?     
已邀请:
我在部署项目中看到了类似的错误。我相信VS2010 Web部署项目有一个错误,可以防止复制任何包含引号字符的文件。 我在这里提交了一个连接错误:https://connect.microsoft.com/VisualStudio/feedback/details/631995/ 我知道的唯一解决方法是从文件名中删除引号字符。     
我发现了一个解决方法!您可以通过将非工作部件替换为2008版本中的工作部件来更改文件“C: Program Files(x86) MSBuild Microsoft WebDeployment v10.0 Microsoft.WebDeployment.targets”。为此,请搜索
<Target Name="_CopyBeforeBuild"
并使用以下内容替换xml标记中的内容(取自webdeploymentproject 2008)
<Target Name="_CopyBeforeBuild" Condition=" '$(EnableCopyBeforeBuild)' == 'true' or '@(ExcludeFromBuild)' != ''  ">
    <CreateItem Include="$(SourceWebPhysicalPath)***.*" Exclude="@(ExcludeFromBuild)">
        <Output ItemName="_WebFiles" TaskParameter="Include" />
    </CreateItem>

    <RemoveDir Directories="$(CopyBeforeBuildTargetPath)"/>
    <MakeDir Directories="$(CopyBeforeBuildTargetPath)"/>
    <Copy SourceFiles="@(_WebFiles)" DestinationFolder="$(CopyBeforeBuildTargetPath)%(_WebFiles.SubFolder)%(_WebFiles.RecursiveDir)" />

    <CreateProperty Value="$(CopyBeforeBuildTargetPath)">
        <Output TaskParameter="Value" PropertyName="_AspNetCompilerSourceWebPath" />
    </CreateProperty>
</Target>
    

要回复问题请先登录注册