.net - 制作一个旧项目以使用 nuget 包管理器并创建 package.config 文件
问题描述
我目前正在使用过去没有使用 nuget 获取其软件包的旧解决方案,但我正在尝试将其添加到软件交付管道(git 源代码控制)并且它无法恢复软件包。它的工作方式是,它在构建过程中恢复包,在我的情况下,它找不到恢复包的方法。Git 忽略 bin 文件夹,因此不会在源代码管理中检查所有包。我可以删除 bin 文件夹上的 git ignore ,但在此之前我想确定是否有一种简单的方法可以将包添加到 package.config 文件中并在构建过程中恢复。底线是我希望这个旧的 .Net 3.5 项目使用 Nuget,而不是通过在 bin 文件夹中的 csproj 文件中引用它现在如何工作。
解决方案
我会做的是:
删除包含所有 dll 的文件夹
对于由于缺少命名空间/类而导致的每个编译错误,请使用 Visual Studio 的包管理器安装必要的包。请注意,使用包管理器控制台而不是 UI 会更快,尤其是在您有大量项目和/或包的情况下。请记住在项目选择下拉菜单中选择正确的项目。
在文本编辑器中一一打开每个项目文件(或者您可以在 VS 的解决方案资源管理器中卸载项目然后编辑,但我发现仅使用 VSCode 更快)并删除任何以开头的行,
<Reference
并且包含路径是 bin之前删除的目录(保留 .NET Framework 引用)。您可以将 MSB3106 设置为警告,将其视为错误,以便更轻松地找到
如果您使用的是 Visual Studio 2017,我建议您考虑使用 PackageReference 而不是 packages.config。有几个好处,更不用说 SDK 风格的项目(.NET Core 需要)不再支持 packages.config。对于可以的项目类型,我还建议尽可能切换到 SDK 风格的项目(并非所有项目都可以,但任何类库和控制台应用程序通常都可以毫无问题)。
推荐阅读
- r - mirror_ticks 函数不适用于 ggplot
- css - 标题进入多行时垂直节奏不起作用
- javascript - 创建多个相同的 DOM 元素图像
- c# - 从 SQL(C# 和实体框架)到 mongodb(Go 和 mgo)
- javascript - React-native flatlist 不渲染?
- r - 将字符串转换为 Datetime 对象
- python - ManyToManyField 关系没有检索到数据
- java - 尝试运行 Spring Boot 应用程序时无法部署到 docker
- python - Python中计数器的线性组合
- php - 将 json 发送到 php (jquery)