ошибка MSB4064: параметр «OverwriteReadOnlyFiles» не поддерживается задачей «Копировать» - PullRequest
4 голосов
/ 18 января 2012

Я использую 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 ]

10 голосов
/ 18 января 2012

Я использую OverwriteReadOnlyFiles = "true" без проблем. Попробуйте добавить ToolsVersion = "4.0" в тег проекта:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
6 голосов
/ 26 января 2012

Скорее всего, вы столкнулись с проблемой ToolsVersion, даже если вы сказали, что проверили все свои файлы и их импорт. Пропуск ToolsVersion из файла приведет к его снижению до более низкой версии, поэтому, если все, что вы сделали, - это поиск «ToolsVersion», возможно, вы пропустили файл, в котором он вообще не был объявлен на узле . *

Запустить сборку из командной строки с ведением журнала уровня диагностики со следующими дополнительными параметрами:

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

После сбоя сборки откройте файл журнала, найдите «MSB4064», затем найдите файл в поисках чего-либо, определяющего инфраструктуру 2.0.

...