更新 nuget pacakge 向 csproj 添加错误条件

Rac*_*hel 5 visual-studio nuget nuget-package visual-studio-2015

我正在处理一个具有多种解决方案的项目。我最近在我的一个解决方案中添加了对 Nuget 包 X 的引用。这导致了一些版本冲突,所以我更新了所有解决方案中 x 的版本。现在在有冲突的解决方案中,我可以看到添加了以下几行

<Import Project="..\packages\X.3.3.2.0\build\X.props" Condition="Exists('..\packages\X.3.3.2.0\build\X.props')" />

<Error Condition="!Exists('..\packages\X.3.3.2.0\build\X.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\X.3.3.2.0\build\X.props'))" />
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么添加这个以及这些行的意义是什么?

Mar*_*ich 5

NuGet 包可以通过在其文件夹中包含.props和/或.targets文件来向使用项目添加构建逻辑build

\n\n

当安装到“经典”csproj 文件(packages.config 方法)中时,NuGet 会将这些语句添加到 csproj 文件中以包含此逻辑。这实际上是什么取决于包。有些设置值在构建过程中使用,有些添加复制到构建输出的内容文件,有些添加自定义构建步骤(转换等)。

\n\n

<Import \xe2\x80\xa6 />元素使用逻辑文件,并有一个防止文件丢失的条件 - 例如,当 NuGet 包尚未恢复时(新克隆/签出、构建服务器)。如果Condition没有检查文件是否存在,项目文件可能无法在 VS 中加载。

\n\n

<Error \xe2\x80\xa6 />元素会发出错误消息,以便 VS 在项目加载后显示错误。

\n