2

我错过了什么,还是 xbuild 真的没有实现<Move>任务?我正在尝试使用 MSBuild 文件为所有内容构建跨平台 C# 项目,因此我们的项目中 Windows 和 Linux 之间的差异会更小,我的 MSBuild 文件看起来有点像这样:

<Copy SourceFiles="$(SrcDir)/$(FirstFile);$(SrcDir)/$(SecondFile)" DestinationFolder="$(DestDir)" />
<Move SourceFiles="$(DestDir)/$(SecondFile)" DestinationFile="$(DestDir)/$(NewFileNameForSecondFile)" />

但是当我运行 xbuild 时,它会抱怨:

Error initializing task Move: Not registered task Move.

我错过了什么?我知道 xbuild 并没有实现 MSBuild 的一些更新和/或更高级的功能——我不得不解决其中的一些遗漏——但这项<Move>任务似乎是一个非常非常基本的任务。它真的没有在 xbuild 中实现,还是我遗漏了一些明显的东西?

4

1 回答 1

1

认为 Move属于 MSBuild 中的 TaskExtensions。您需要将其转换为复制删除或多个平台特定的任务:

xbuild 中的任务名称列表(单声道 4.2.x):

cd mono/mcs/tools/xbuild
grep -RI "TaskName=" * | cut -d "=" -f 2 | cut -d "      " -f 1 | sort | uniq
"Microsoft.Build.Tasks.AL"
"Microsoft.Build.Tasks.AssignCulture"
"Microsoft.Build.Tasks.AssignLinkMetadata"
"Microsoft.Build.Tasks.AssignProjectConfiguration"
"Microsoft.Build.Tasks.AssignTargetPath"
"Microsoft.Build.Tasks.CallTarget"
"Microsoft.Build.Tasks.CombinePath"
"Microsoft.Build.Tasks.Copy"
"Microsoft.Build.Tasks.CreateCSharpManifestResourceName"
"Microsoft.Build.Tasks.CreateItem"
"Microsoft.Build.Tasks.CreateProperty"
"Microsoft.Build.Tasks.CreateVisualBasicManifestResourceName"
"Microsoft.Build.Tasks.Csc"
"Microsoft.Build.Tasks.Delete"
"Microsoft.Build.Tasks.Error"
"Microsoft.Build.Tasks.Exec"
"Microsoft.Build.Tasks.FindAppConfigFile"
"Microsoft.Build.Tasks.FindUnderPath"
"Microsoft.Build.Tasks.GenerateResource"
"Microsoft.Build.Tasks.GetAssemblyIdentity"
"Microsoft.Build.Tasks.GetFrameworkPath"
"Microsoft.Build.Tasks.GetFrameworkSdkPath"
"Microsoft.Build.Tasks.GetReferenceAssemblyPaths"
"Microsoft.Build.Tasks.LC"
"Microsoft.Build.Tasks.MSBuild"
"Microsoft.Build.Tasks.MakeDir"
"Microsoft.Build.Tasks.Message"
"Microsoft.Build.Tasks.ReadLinesFromFile"
"Microsoft.Build.Tasks.RemoveDir"
"Microsoft.Build.Tasks.RemoveDuplicates"
"Microsoft.Build.Tasks.ResolveAssemblyReference"
"Microsoft.Build.Tasks.SignFile"
"Microsoft.Build.Tasks.Touch"
"Microsoft.Build.Tasks.Vbc"
"Microsoft.Build.Tasks.Warning"
"Microsoft.Build.Tasks.WriteCodeFragment"
"Microsoft.Build.Tasks.WriteLinesToFile"
于 2015-09-10T23:21:02.570 回答