构建解决方案时需要 .csproj nuget 包存在
Require .csproj nuget packages to exist when building solution
我正在创建一个应用程序来自动更新解决方案中的 nuget 包并构建它以确保它们仍然兼容。
场景:
<PackageReference Include="Dapper" Version="1.50.5" />
Clean/Build 包版本正确。成功了。
然后我用垃圾文本编辑 .csproj 中的版本。
<PackageReference Include="Dapper" Version="dasdasdasdqw3" />
它仍然成功。但是它确实记录了错误:
Error occurred while restoring NuGet packages: Invalid restore input. Missing required property 'Name'.
我的理解是,它使用的是 \.nuget\packages
文件夹中以前成功的版本。
如果无法恢复包而不涉及从 \.nuget\packages
中删除它,是否有办法让构建失败?
假设您使用了 net core 项目。
首先,确保你在Tools-->Options[=65下启用了这两个选项=]-->Nuget 包管理器-->常规:
其实,当你更改版本时,vs会检测到更改并使用当前版本,不会使用\.nuget\packages
下最新的有效包。在我这边,它失败了。
Right-click 在您的项目上 Properties-->卸载项目- ->编辑项目文件,然后从1.50.5
更改为adadd
。然后重新加载您的项目,您会发现该项目有一个无效的 nuget 版本,名为 asda
.
构建过程成功失败。您应该单击 Rebuild 而不是 Build 按钮。
========
如果在 解决方案资源管理器 下没有看到 UI 显示的 nuget 包版本,您可以卸载项目,然后重新加载项目。并稍等片刻即可找零。
除了,你还可以在Project Properties-->Build Events[下添加dotnet restore
命令=65=]-->Pre-Build事件命令行使其更加准确
要自动使用最新更新的版本,您可以使用Floating Versions。
试试这个:
<PackageReference Include="Dapper" Version="*" />
它将更新 nuget 包以使用 nuget 包源提要下的最新版本,而不是缓存 \.nuget\packages
中的最新版本。当你重新加载你的项目时,稍等片刻,你会看到自动使用最新的 nuget 版本的变化。
我正在创建一个应用程序来自动更新解决方案中的 nuget 包并构建它以确保它们仍然兼容。
场景:
<PackageReference Include="Dapper" Version="1.50.5" />
Clean/Build 包版本正确。成功了。
然后我用垃圾文本编辑 .csproj 中的版本。
<PackageReference Include="Dapper" Version="dasdasdasdqw3" />
它仍然成功。但是它确实记录了错误:
Error occurred while restoring NuGet packages: Invalid restore input. Missing required property 'Name'.
我的理解是,它使用的是 \.nuget\packages
文件夹中以前成功的版本。
如果无法恢复包而不涉及从 \.nuget\packages
中删除它,是否有办法让构建失败?
假设您使用了 net core 项目。
首先,确保你在Tools-->Options[=65下启用了这两个选项=]-->Nuget 包管理器-->常规:
其实,当你更改版本时,vs会检测到更改并使用当前版本,不会使用\.nuget\packages
下最新的有效包。在我这边,它失败了。
Right-click 在您的项目上 Properties-->卸载项目- ->编辑项目文件,然后从1.50.5
更改为adadd
。然后重新加载您的项目,您会发现该项目有一个无效的 nuget 版本,名为 asda
.
构建过程成功失败。您应该单击 Rebuild 而不是 Build 按钮。
========
如果在 解决方案资源管理器 下没有看到 UI 显示的 nuget 包版本,您可以卸载项目,然后重新加载项目。并稍等片刻即可找零。
除了,你还可以在Project Properties-->Build Events[下添加dotnet restore
命令=65=]-->Pre-Build事件命令行使其更加准确
要自动使用最新更新的版本,您可以使用Floating Versions。
试试这个:
<PackageReference Include="Dapper" Version="*" />
它将更新 nuget 包以使用 nuget 包源提要下的最新版本,而不是缓存 \.nuget\packages
中的最新版本。当你重新加载你的项目时,稍等片刻,你会看到自动使用最新的 nuget 版本的变化。