gpt4 book ai didi

msbuild - Visual Studio 2017 MSBuild 任务开发

转载 作者:行者123 更新时间:2023-12-01 03:25:55 24 4
gpt4 key购买 nike

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

有没有办法自动将所有依赖项复制到 Debug 文件夹?
还是每次我想测试时都必须发布它?

更新 1:
发布的问题是我的环境的局部问题,并且已得到修复。

更新 2 :
似乎一旦我将 TargetFramework 从 netstandard1.4 更改为 netstandard1.6,它甚至根本无法加载任务。一旦我使用 netstandard 1.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.

最佳答案

Is there a way to automatically copy all dependencies to the Debug folder? Or do I have to publish it every time I want to test it?



默认情况下,出于充分的原因,.NET Core 和 .NET Standard 项目不会将引用的程序集复制到构建文件夹中。相反,它们是从 NuGet 缓存解析的。

但是如果你真的需要它,这个行为可以通过用 CopyLocalLockFileAssemblies 覆盖默认值来改变。环境。
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

编号: https://github.com/dotnet/sdk/blob/d20405f91a2959fa91fea6285d9a896286727f2a/src/Tasks/Microsoft.NET.Build.Tasks/build/Microsoft.NET.Sdk.BeforeCommon.targets#L55-L56

第二个问题

It seems that as soon as I change the TargetFramework from netstandard1.4 to netstandard1.6



要构建同时适用于“MSBuild.exe”和“dotnet.exe msbuild”的任务程序集,您应该针对 netstandard1.4 或更低版本。 netstandard1.6 与 .NET Framework 4.6.1(MSBuild.exe 在其上运行)不兼容。

如果您需要在 netstandard1.4 中不可用的 API,您将需要为 .NET Framework 和 .NET Standard 交叉编译您的任务,这是相当复杂但可以完成的。

关于msbuild - Visual Studio 2017 MSBuild 任务开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41582142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com