riq*_*ang 78 .net-core visual-studio-2017
我有一个针对Microsoft.NETCore.App 1.1.2的dotnet核心应用程序.我创建了一个测试项目来测试该项目,但在构建时我注意到了这个警告:

我打开NuGet包管理器并看到警告是正确的,正在测试的项目有不同版本的Microsoft.NETCore.App:

我的问题是Visual Studio不允许我更新该版本,所以我对如何解决这个问题感到困惑:
理想情况下,我只需单击下拉列表并选择正确的版本,但Visual Studio声称由于"项目或packages.config中的其他约束"而无法执行此操作.我该怎么更新那个包?Visual Studio指的是什么"附加约束"?
Mar*_*ich 50
编辑2018:如果您真的知道自己在做什么,请按照更新包的说明进行操作.在大多数情况下,您永远不需要手动更新此软件包 - 或标记为"由项目阻止"的其他软件包.依赖于框架的应用程序将使用可用的最新运行时,并且自包含的应用程序将自动使用此软件包的较新版本执行额外构建.(在某些情况下,您需要在测试项目中升级此软件包.在这种情况下,添加<TargetLatestRuntimePatch>true</…>并查看此问答以获取其他选项)
隐式包引用Microsoft.NET.Sdk无法通过NuGet更新推断.
如果从project.json迁移,则带有1.1.0引用的项目可能包含
<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>
Run Code Online (Sandbox Code Playgroud)
在csproj文件或类似的项目中(如果您以前可能使用包管理器来设置版本):
<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />
Run Code Online (Sandbox Code Playgroud)
删除上述条目,所有软件包将自动引用1.1.2(或安装的SDK认为是最新的软件包).Alernatively,设置RuntimeFrameworkVersion在所有项目中.
Mar*_*ias 47
尝试在.NET Core 2 Web应用程序中安装Entityframework.Core包时遇到了类似的问题.为了解决这个问题,我通过Package Manager Console强制安装:
Install-Package Microsoft.NETCore.App -Version 2.0.5
Run Code Online (Sandbox Code Playgroud)
(2.0.5是当时的最新版本)
我希望它有用.和平.
gsh*_*arp 19
对我来说加
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
Run Code Online (Sandbox Code Playgroud)
做了伎俩
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
简答
Microsoft.AspNetCore.App在.csproj文件中的包引用中添加显式版本.
答案很长
我有一个全新的netcoreapp2.1项目.以下内容位于.csproj文件中.请注意,没有与Microsoft.AspNetCore.App包引用关联的版本.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" />
...
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我添加了一个对Microsoft.Extensions.Logging.Abstractions包的显式引用来解决依赖项不匹配(构建错误).Micorsoft.AspNetCore.App想要这个依赖的版本2.1.0,但另一个包想要版本2.1.1.我的.csproj文件现在看起来像这样.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
...
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这将构建错误减少为关于Micorsoft.AspNetCore.App要求2.1.0版本的Microsoft.Extensions.Logging.Abstractions软件包的警告,但当然,版本2.1.1已得到解决.
尝试更新Micorsoft.AspNetCore.App到版本2.1.1以修复警告已被OP提到的程序包管理器阻止.
我更新了我的Micorsoft.AspNetCore.App包引用,以明确使用版本2.1.1.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
...
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
这修复了构建警告并取消阻止了Microsoft.AspNetCore.App程序包管理器中的所有版本.我甚至能够在Microsoft.Extensions.Logging.Abstractions不重新引入原始错误的情况下删除显式引用.最终的.csproj看起来像没有问题.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
...
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30856 次 |
| 最近记录: |