比方说,我有一个Windows窗体应用程序,其中包含一些重要的Nuget程序包,这些程序包必须保持最新。
是否可以从非开发环境中以编程方式更新Nuget软件包?在非开发环境中,我的意思是随机用户正在运行WinForms应用程序(已将其安装在他们的PC上)。
我已经阅读了有关使用nuget.exe
的一些知识,但是更新nuget软件包应将.dll文件放置在安装文件夹中。
答案 0 :(得分:3)
您可以这样做,但您不应该这样做。 NuGet软件包是依赖开发的,而不是要在已编译的应用程序中或在客户现场任意更新,因为
话虽如此,不要这样做。相反,请遵循负责的软件开发周期,在该周期中,您将在交付之前更新软件包并进行全面测试,并为客户提供整个应用程序的频繁更新。
尽管如此,出于教育目的,您可以使用Nuget CLI工具(在本示例中为nuget.exe
)在本地安装软件包。您需要指定包标识符,输出目录和框架,例如.NET Franmework 4.7.2的net472
。这会将内容以及包本身提取到与目标目录结构不匹配的包文件夹结构中的输出文件夹。从那里,您需要将所需的资产复制到安装目录中,例如与复制脚本。除了做不正确的事情之外,这非常麻烦并且很可能会失败。
nuget install <PackageId> -OutputDirectory <OutputDirectory> -Framework <Framework>
答案 1 :(得分:0)
如果它是自动更新,只需考虑一下旧版本的dll是否支持某种方法,而在新版本中,该方法已被删除。
尽管您可以更新软件包的构建时间。
通过选择工具>选项> NuGet软件包管理器,然后在打包还原下的Visual Studio中选择在构建过程中自动检查丢失的软件包来启用自动软件包还原。