這是有問題IM:OverwriteReadOnlyFiles財產,錯誤MSB3021
錯誤消息
error MSB3021: Unable to copy file "<filename>" to "<output location>". Access to the path '<output location>' is denied
時發生的MSBuild複製任務不能覆蓋現有隻讀文件。
通常在Team Build中會出現此錯誤,因爲(a)MSBuild中似乎存在一個問題,即同一個文件可能會多次包含在要複製的文件列表中;(b)這些文件將通常在Team Build中是隻讀的,因爲它們是從版本控制中檢索的(並且未檢出)。問題的解決方法取決於您正在使用的Team Build(和MSBuild)的版本。
,我發現這個解決方案:
團隊建設2008 /的MSBuild 3.5
在的MSBuild 3.5,加入了OverwriteReadOnlyFiles屬性,可以設置爲true,以允許參與構建過程覆蓋讀取複製任務 - 僅在這裏列出的情況下才有文件。因此,在Team Build 2008/MSBuild 3.5中可以使用第三種解決方法。請注意,此解決方法僅適用於使用3.5版Microsoft.Common.targets的項目 - 由於MSBuild中提供了多重定位功能,因此這不一定是Team Build 2008構建的每個項目。要全局設置OverwriteReadOnlyFiles屬性爲true,您可以:
文本「/ p:OverwriteReadOnlyFiles =真正的」添加到TfsBuild.rsp爲您構建定義,或 以下屬性組添加到TfsBuild.proj爲您的構建定義。
<PropertyGroup>
<CustomPropertiesForBuild>OverwriteReadOnlyFiles=true</CustomPropertiesForBuild>
</PropertyGroup>
有人可以指導我如何實現我的建立在TFS 2010這個解決方案?
我不知道在哪裏:
TfsBuild.rsp
或
TfsBuild.proj
所在,以及如何我可以添加所提到的建議
爲什麼需要在源代碼控制下覆蓋文件作爲構建的一部分?對我來說,這是一種嗅覺,有些東西不是很寫... –