我遇到了一个问题,就是我的AspNetCore.App-metapackage引用的EntityFrameworkCore(2.1.2)版本低于EfCore提供程序的软件包(NpgSql,引用2.1.3)。结果是警告MSB3277(here is the question)。快速解决方案是可接受的答案。
另一个答案指出,我使用的Microsoft.AspNetCore.App软件包(当时的版本为2.1.1)低于上一个稳定版本(2.1.4)的版本。无法更改软件包的版本(请参见下图)。
在类库项目中,Microsoft.NETCore.App遇到了相同的问题
我什至没有注意到我使用了比可用的旧的元软件包。直到今天,我始终检查NuGet软件包管理器中是否有任何更新。我已经使用了默认的项目模板,并始终安装了最新的.NetCore SDK,以为这就足够了。不是。
在调查了此问题之后,我发现,可以强制我的项目使用带有包管理器控制台( function sendRecipientMsg($dataset, $sendCounter, $recipients){
$template = $dataset['template'];
Mail::queue($template, $dataset, function($message) use($dataset, $recipients){
$message->to('piggy@teamprema.co.nz','MissPiggy');
$message->subject('Have a good day');
$message->from('us@prema.co.nz', 'Mike and Stephie');
$message->sender('us@prema.co.nz', 'Mike and Stephie');
trace_log('$message');
$message->cc($address, $name = null);
$message->bcc('systems@safe.org.nz', 'SAFE Campaigns Feedlots ECards');
});
}
或Install-Package Microsoft.NETCore.App -Version 2.1.4
)的特定.NETCore.App或AspNetCore.App元软件包。
该命令执行完后,我发生了构建错误(Install-Package Microsoft.AspNetCore.App -Version 2.1.4
)。
答案 0 :(得分:9)
我试图在该问题上寻求任何帮助,找到了一些看起来很相似但实际上却有所不同的github问题(例如this one)。 我找到了descriptive doc,但这并没有真正帮助我。
我从Rick Strahl找到了pretty helpful blogpost,解释了可用的软件包以及每个软件包的用途。开始是一件好事。
这是我的解决方案:
步骤1:
在程序包管理器控制台中执行Install-Package Microsoft.AspNetCore.App -Version [VersionOfYourChoice]
和/或执行Install-Package Microsoft.NETCore.App -Version [VersionOfYourChoice]
。
步骤2: 如下所示编辑.csproj:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.4</RuntimeFrameworkVersion> <- add this line
<!--<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch> --> <- alternative
</PropertyGroup>
另一个要点:如果您使用Win10,请帮自己一个忙,检查已安装的.Net Core SDK /运行时等。卸载不需要的每个SDK / Runtime (再次:检查Ricks的博客文章)。 您只需要在一个项目中当前定位的对象。
例如:如果您正在开发一个.NETCore项目,而您只是使用2.1.4版进行了这两个步骤-撰写本文时,您只需要Microsoft .NET Core SDK 2.1.402。为了稍微整理一下,我卸载了每个.NET Core SDK / Runtimes / Packages,并从here中获取了最新版本。
注意:我跟随this blogpost from Jeff Atwood回答了一个问题,这花了我很长时间才能解决。希望对您有帮助...
编辑: .NET Core 2.2 的好消息:您只需按如下所示编辑.csproj:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<RuntimeFrameworkVersion>2.2.0</RuntimeFrameworkVersion>
</PropertyGroup>
编辑: 元软件包不应再手动更新。 This is the recommendation for updating AspNetCore。元软件包的版本取决于安装的SDK。
答案 1 :(得分:1)
将此行添加到.csproj文件后,我仍然看到此问题。
<RuntimeFrameworkVersion>2.1.5</RuntimeFrameworkVersion>
将Version属性添加到Microsoft.AspNetCore.App包参考中可以为我解决此问题。我改变了这个:
<PackageReference Include="Microsoft.AspNetCore.App" />
对此:
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.5" />
@Joshit回答中的步骤1可能会自动执行此操作,但是我已经拥有最新版本的Microsoft.AspNetCore.App。
答案 2 :(得分:0)
这个问题对我来说很棘手。我做了@Joshit的答案中的步骤,错误仍然存在。然后我做了:
现在可以正常工作了。
这有助于了解您的SDK版本,可在以下位置找到它: C:\ Program Files \ dotnet \ sdk
您也可以在发布时遇到此问题。将此行添加到publish_profile.pubxml文件可能会有所帮助:
<TargetFramework>netcoreapp2.1</TargetFramework>
<RuntimeFrameworkVersion>2.1.0</RuntimeFrameworkVersion>
将2.1.0替换为2.1.4或您正在使用的任何内容。