使用VisualStudio2017 RC开发自定义MSBuild任务时,我会遇到以下问题:一旦添加了Microsoft.Build.Utilities.Core以外的其他依赖项(对于.NET核心支持使用v15.1.0-预览-000458-02),我就无法将任务加载到另一个.csproj MSBuild项目中,因为没有找到依赖项。
是否有一种自动将所有依赖项复制到Debug文件夹的方法?还是每次我想测试它的时候都要发布它?
Update1:
发布的问题在我的环境中是本地的,并且已经解决了。
Update2
看来,一旦我将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.发布于 2017-02-05 03:18:03
是否有一种自动将所有依赖项复制到Debug文件夹的方法?还是每次我想测试它的时候都要发布它?
默认情况下,出于很好的理由,.NET核心和.NET标准项目不会将引用的程序集复制到生成文件夹中。相反,它们是从NuGet缓存中解析的。
但是,如果您确实需要它,则可以通过使用CopyLocalLockFileAssemblies设置覆盖默认设置来更改此行为。
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>第二个问题
看来,一旦我将TargetFramework从标准1.4改为标准1.6
要构建一个同时工作在"MSBuild.exe“和"dotnet.exe msbuild”上的任务程序集,您应该瞄准netstandard1.4或更低版本。netstandard1.6与.NET Framework4.6.1( MSBuild.exe运行在其上)不兼容。
如果您需要netstandard1.4中不可用的API,则需要交叉编译.NET框架和.NET标准的任务,这要复杂得多,但可以完成。
https://stackoverflow.com/questions/41582142
复制相似问题