我写了一个 c# 控制台应用程序,我想为 Linux 机器编译它。当我在控制台中使用以下命令时,出现此错误:
dotnet publish -r linux-x64 --self-contained true
C:Program Filesdotnetsdk3.1.300Microsoft.Common.CurrentVersion.targets(3983,5): error MSB4062: The "Microsoft.Build.Tasks.ResolveManifestFiles" task could not be loaded from the assembly Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a. 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. [X:CodingVisual Studio 2019ProjectsfirstDiscordBotfirstDiscordBotfirstDiscordBot.csproj]
我阅读了很多类似的问题,但没有一个解决方案对我有用。我尝试删除解决方案的项目文件夹中的 .vs 文件夹,并执行了清理和生成,我尝试在 NuGet 包管理器控制台中输入Install-Package MSBuildTasks
,然后重新生成我的项目。
(纯文本格式的错误消息,可能更容易阅读:(
C:\Program Files\dotnet\sdk\3.1.300\Microsoft.Common.CurrentVersion.targets(3983,5(:错误MSB4062:"Microsoft.Build.Tasks.ResolveManifestFiles"任务无法从程序集加载 Microsoft.Build.Tasks.Core,版本=15.1.0.0,区域性=中性,公钥令牌=b03f5f7f11d50a3a。 确认声明正确,程序集及其所有依赖项可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。[X:\Coding\Visual Studio 2019\Projects\firstDiscordBot\firstDiscordBot\firstDiscordBot.csproj]
[编辑] 我做了一些实验,现在错误消息如下:
C:\Program Files\dotnet\sdk\3.1.300\Microsoft.Common.CurrentVersion.targets(3975,5(:错误 MSB4062:"Microsoft.Build.Tasks.SignFile"任务无法从程序集加载 Microsoft.Build.Tasks.Core,版本=15.1.0.0,区域性=中性,公钥令牌=b03f5f7f11d50a3a。 确认声明正确,程序集及其所有依赖项可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。[X:\Coding\Visual Studio 2019\Projects\firstDiscordBot\firstDiscordBot\firstDiscordBot.csproj]
我想错误基本相同,可能无关紧要。
我还做了更多的研究,并尝试了更多方法,例如在解决方案资源管理器中右键单击我的项目并重新安装 SDK 时使用"发布"功能。我还多次验证了我的所有文件,但上述都没有帮助。
我只想提一下,每一个小建议都将不胜感激,因为这是第一次,即使经过多个小时的研究和奉献,我似乎也无法解决问题。所以如果你认为我能做什么,我会很高兴。
对于有相同问题的任何人,我修复了它。我的问题只是我正在使用.NET 框架项目而不是 .网芯。当心这一点。