Visual Studio 2017 MSBuild任务开发

Visual Studio 2017 MSBuild任务开发,msbuild,.net-core,msbuild-task,visual-studio-2017,Msbuild,.net Core,Msbuild Task,Visual Studio 2017,使用Visual Studio 2017 RC开发自定义MSBuild任务时,我遇到了以下问题:只要我添加了除Microsoft.Build.Utilities.Core(使用v15.1.0-preview-000458-02获得.NET Core支持)之外的其他依赖项,我就无法将任务加载到另一个.csproj MSBuild项目中,因为找不到依赖项 是否有方法自动将所有依赖项复制到调试文件夹? 还是每次我想测试时都要发布它 更新1: publish的问题是我所在环境的局部问题,已经解决 更新2

使用Visual Studio 2017 RC开发自定义MSBuild任务时,我遇到了以下问题:只要我添加了除Microsoft.Build.Utilities.Core(使用v15.1.0-preview-000458-02获得.NET Core支持)之外的其他依赖项,我就无法将任务加载到另一个.csproj MSBuild项目中,因为找不到依赖项

是否有方法自动将所有依赖项复制到调试文件夹? 还是每次我想测试时都要发布它

更新1:
publish的问题是我所在环境的局部问题,已经解决

更新2
似乎只要我将TargetFramework从netstandard1.4更改为netstandard1.6,它就根本无法加载任务。我一使用NetStandard1.6,它就会抛出一个异常:

The task could not be loaded from the assembly.
Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its
dependencies.
是否有方法自动将所有依赖项复制到调试文件夹?或者 每次我想测试的时候我都要发布它

默认情况下,.NET Core和.NET标准项目不会将引用的程序集复制到生成文件夹中。而是从NuGet缓存中解析它们

但是如果您确实需要它,可以通过使用
copylockfileassemblies
设置覆盖默认设置来更改此行为

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
true
Cref:

第二个问题

似乎只要我将TargetFramework从netstandard1.4更改为netstandard1.6

若要生成同时在“MSBuild.exe”和“dotnet.exe MSBuild”上工作的任务程序集,应以netstandard1.4或更低版本为目标。netstandard1.6与运行MSBuild.exe的.NET Framework 4.6.1不兼容


如果您需要netstandard1.4中没有的API,您需要交叉编译.NET Framework和.NET Standard的任务,这要复杂得多,但可以完成。

如果您有两个不同的问题,您应该分别问。第二部分是一个无关的问题,所以只剩下一个了。我找到了一个解决方案,它不需要复制程序集(我也更喜欢)。但也许其他人对此答案有一个有效的用例。无论如何,谢谢你:)