- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我了解.Net Core 2具有一个兼容性垫片,允许它使用不专门针对.Net Core/Standard 2的Nuget程序包。这使它可以访问70%的Nuget。很棒-不错的功能。
如何防止安装与.Net Core 2/.Net Standard 2不完全兼容的nuget软件包?或在安装时警告我将其与垫片一起使用?
我创建了一个新的.Net Core 2.0项目,安装了EF 6.1.3(我知道那是行不通的),但并没有阻止我或警告过它在安装时没有针对.Net Standard <= 2。
我很高兴“用剪刀奔跑”,但是我觉得在将MVC5和EF 6.1.3安装到.Net Core 2应用程序中之前,我应该会得到警告。我真的很想防止初级开发者安装不受支持的软件包等。
我想进一步回答Matt Ward的问题-我的主要观点是-是否可以检测到某些东西在安装时实际上是100%兼容的,还是我们总是只在需要自己确定软件包能“足够好”地工作的情况下。我希望有一种技术机制可以检测到缺少的覆盖API覆盖范围,并可以告诉我们nuget包可能无法像以前那样运行。所以我想MS说70%的兼容性-如果我尝试安装30%的兼容性,我会失败
最佳答案
如果您想100%确定,请针对.NET Portability Analyzer和.NET Standard 2.0配置文件运行该程序包。
它不会告诉您是否将调用该API(决不是自动过程),即使程序集包含任何与.NET Standard 2.0不兼容的API也是如此。
但是,您也只能对分析器运行应用程序,因为.NET可移植性分析器应该能够跟踪从该应用程序所做的任何引用,并对其进行检查。
更新
您可以将其构建到构建服务器管道中,以获得更自动的保证。
The .NET Portability Analyzer Docs。
不需要Visual Studio,只需从https://github.com/Microsoft/dotnet-apiport/releases下载并运行
从文档中:
- Type the following command to analyze the current directory:
\...\ApiPort.exe analyze -f .
- To analyze a specific list of .dll files, type the following command:
\...\ApiPort.exe analyze -f first.dll -f second.dll -f third.dll
<!-- old dotnet tooling/.NET Core 1.x -->
<PackageTargetFallback>netstandard2.0;portable-net45+win8</PackageTargetFallback>
<!-- new dotnet tooling/.NET Core 2.0 -->
<AssetTargetFallback>netstandard2.0;portable-net45+win8</AssetTargetFallback>
通常,您想要像
<!-- old dotnet tooling/.NET Core 1.x -->
<PackageTargetFallback>$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback>
<!-- new dotnet tooling/.NET Core 2.0 -->
<AssetTargetFallback>$(AssetTargetFallback);dotnet5.6;portable-net45+win8</AssetTargetFallback>
$(PackageTargetFallback)
将告诉MSBuild保留旧值,然后将旧值附加到其后。但是由于
$(PackageTargetFallback)
可能(现在无法进一步查看/深入研究)在其中具有.NET Framework名称,因此您将使用自己的值覆盖它。
PackageTargetFallback
,因此应该改用
AssetTargetFallback
。
关于asp.net-core - 如何防止安装与100%.Net Core 2.0不兼容的nuget软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45712404/
当我做 rpm -qa | grep nano我可以看到 Nano 文本编辑器已安装到我的 CentOS 机器上。 但是当我做 rpm -qpi nano-2.9.8-1.el8.x86_64.rpm
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 4年前关闭。 Improve this qu
我无法使用“yum”命令在RHEL服务器上安装“graphviz” 我下载了graphviz rhel.repo,并将其保存在/etc/yum.repos.d/上,然后使用“yum-y install
我想用 Go 检查 dot 包是否已安装并可在当前 OS 上执行。 我的第一个想法是检查 PATH 变量中的 /dot 字符串?有没有更好的方法来使用 Go 获取可执行/已安装的包? 任何建议都会有所
我已经在我的 ubuntu 上安装了 R(3.4.0)。我想使用 EdgeR 包。我尝试按照 Bioconductor 网站上的安装说明安装 Bioconductor 软件包。 我在 R 中使用了以下
我已经自定义编译了我自己的 ffmpeg 版本,并从这个包中制作了一个 .deb 文件。包描述如下control.txt Package: ffmpeg Version: 4.3-ubuntu1804
我正在尝试构建一个 debian 软件包,它会自动配置我所有的机器以使用相同的配置文件和设置。 例如,我正在尝试设置诸如 alter/etc/default/hostapd 之类的内容。我目前正在通过
我的configuration.nix中有一些要覆盖的软件包。因此,我将代码编写如下: nixpkgs.config = { allowUnfree = true; packageOverri
我想将我的 Ubuntu 从 19.04 升级到 20.04,但在我更新所有软件包之前这是不可能的。 ❯ sudo do-release-upgrade Checking for a new Ubun
我安装了 Homebrew 软件,但是我没有管理员权限。如何在没有管理员访问权限的情况下安装 Homebrew 软件包?是否有本地标签或我一直缺少的东西? 最佳答案 Homebrew 需要 /usr/
我想重建/重新编译具有特定标志的机器的所有 Debian 软件包。 我怎样才能用尽可能少的命令来做到这一点? 我发现 https://debian-administration.org/article
请帮我在 R 中安装 Rmpfr 包。 结果是: 安装包“Rmpfr”的退出状态非零,我无法安装它。 R控制台的代码发布如下: * installing *source* package ‘Rmpfr
有没有办法从这一行下载所有软件包,将它们保存在本地,然后将它们安装到没有互联网连接的机器上? yum install -y qemu-kvm qemu-img virt-manager libvirt
以下 R 命令将安装所有 CRAN 软件包: availablePackages <- available.packages()[,1] install.packages(availablePacka
我正在尝试在 OS X 10.12.6 上安装 RCurl,但出现以下错误: Error: package or namespace load failed for ‘RCurl’ in dyn.lo
我正在尝试自动设置开发人员机器软件安装。当您连接到 Internet 时,Chocolatey 很适合安装软件包。有没有办法离线安装软件包? 我只想将所有包放在共享网络文件夹中并使用该包进行安装。如果
这很奇怪,list-packages 缓冲区将实际安装的某些软件包的状态显示为“可用”。该列不应该为他们显示“已安装”吗?当我单击其中一个时,会打开一个新缓冲区,通知我该软件包已安装,但不提供卸载选项
我刚开始学习 Dart 。 首先,我从https://angular.io/docs/dart/latest/quickstart.html创建了一个基于angular2-dart的项目,它正常工作。
我在 ~/R/i486-pc-linux-gnu-library/2.11 下安装了一些 R 软件包。 我想让它们以及我从现在开始安装的任何其他 R 软件包可供所有 R 用户使用。我不介意在一个中立的
我是Renjin的新手,无法使用AetherPackageLoader安装软件包。我收到与Renjin can't load pckages中相同的错误,但看似正确的Gradle文件(请注意a4Bas
我是一名优秀的程序员,十分优秀!