错误MSB4064:“复制”任务不支持“OverwriteReadOnlyFiles”参数

时间:2012-01-18 11:52:51

标签: msbuild msbuild-task msbuild-4.0

我正在使用Msbuild 4.0。当我使用Msbuild 3.5时,OverwriteReadonlyfiles没有任何问题。

但是今天当我尝试使用复制任务时,我遇到了这个问题。

错误MSB4064:

  

不支持“OverwriteReadOnlyFiles”参数   通过“复制”问。验证任务上是否存在参数   是一个可设置的公共实例属性。

这是我的目标,它有复制任务

<Target Name="CopyBOM">

    <Copy SourceFiles="@(BOM)" DestinationFolder="%(BOM.Destination)" OverwriteReadOnlyFiles="true">
      <Output TaskParameter="CopiedFiles" ItemName="CopyBOMFiles" />
    </Copy>

    <Message Text="Copied to BOM: @(CopyBOMFiles)"/>


  </Target>

以下是我在我的属性文件中使用的项目组

 <BOM Include="..\..\..\Release\CoreDeployment.msi">
      <Destination>..\..\..\Core\BOM\Comp1</Destination>
 </BOM>

我有多个属性文件,我已经确认在所有地方放置了Toolsversion = 4.0。 有没有人面对这个?有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:10)

我使用OverwriteReadOnlyFiles =&#34; true&#34;没有问题。尝试添加ToolsVersion =&#34; 4.0&#34;进入你的项目标签:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

答案 1 :(得分:6)

即使您说您已经检查了所有文件及其导入,但您最有可能处理ToolsVersion问题。从文件中省略ToolsVersion将导致它降至较低版本,因此,如果您所做的只是搜索“ToolsVersion”,那么您可能错过了未在&lt; Project&gt;上声明它的文件。节点。

使用诊断级别日志记录运行命令行构建,并使用以下附加参数:

> msbuild My.proj /fl /flp:v=diag;logfile=My.proj.diagnostic.log

构建失败后,打开日志文件,搜索“MSB4064”,然后回溯文件,查找指定2.0框架的任何内容。