.net 4.0 复制任务在MSBuild 4中不工作

.net 4.0 复制任务在MSBuild 4中不工作,.net-4.0,copy,task,msbuild-4.0,.net 4.0,Copy,Task,Msbuild 4.0,在MSBuild 3.5中,这对我来说很好。但由于我一直在尝试迁移到4.0,MSBuild抛出了这个错误 <Copy SourceFiles="@(sourceFiles)" DestinationFolder="$(destinationFolder)\"/> 无法从程序集Microsoft.Sdc.Tasks.dll加载“Microsoft.Sdc.Tasks.Folder.Copy”任务。确认声明正确,程序集及其所有依赖项可用,并且任务包含实现Microsoft.Build.

在MSBuild 3.5中,这对我来说很好。但由于我一直在尝试迁移到4.0,MSBuild抛出了这个错误

<Copy SourceFiles="@(sourceFiles)" DestinationFolder="$(destinationFolder)\"/>
无法从程序集Microsoft.Sdc.Tasks.dll加载“Microsoft.Sdc.Tasks.Folder.Copy”任务。确认声明正确,程序集及其所有依赖项可用,并且任务包含实现Microsoft.Build.Framework.ITask的公共类。
我试着用task来放置
,但仍然徒劳无功。有什么想法吗?

原因很简单

  • 您可以在.NET2.0GAC中安装。因此,MSBuild 2.0或3.5可以成功加载它
  • .NET 4使用不同的GAC,因此MSBuild 4找不到您在.NET 2 GAC中安装的内容 因此,您会看到一条错误消息

    我的建议

  • 按照建议切换到MSBuild社区包
  • 您不应该将MSBuild扩展程序集添加到GAC中,而应该将其放入依赖项文件夹(如lib)中,并将其添加到源代码管理中
  • 修改项目文件(如csproj)时,请确保在
    中使用依赖项文件夹的程序集路径
  • 我的开源项目#SNMP使用Gendarme MSBuild扩展,我已经使用上述技巧很长时间了


    似乎您想要标准复制任务,而msbuild想要从SDC使用复制任务。。你应该发布一个最小的非工作样本;还有,第一个谷歌匹配:就是这样!现在很好用。
    The "Microsoft.Sdc.Tasks.Folder.Copy" task could not be loaded from the assembly Microsoft.Sdc.Tasks.dll. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.