我尝试过Nuget Update,Nuget还原,但它们实际上并不相同,原因如下:
我创建了一个Nuget pkg,只是为了分发一个可执行文件。当我安装Nuget时,可执行文件被添加到我的项目中,这样我就可以引用它并在我的应用程序中运行它。
现在,我不希望每个开发人员都必须安装Nuget才能在他们的项目中拥有可执行文件,但我只是希望在构建项目时添加.exe。当然,配置文件中对包的引用是存在的。
如果我运行Update-Package -Id -reinstall(使用VS的packages ),一个带有.exe的文件夹将被添加到项目根目录中,但是如果我运行nuget update或nuget restore (使用nuget ),它只会将.exe重新添加到packages文件夹中。
我需要运行nuget的原因是,我使用的是TeamCity,我想在自动构建运行时添加.exe。
我希望这是合理的。
发布于 2018-07-19 07:37:39
如何使用Nuget再现VS2017包管理器命令“Update- Package -reinstall”
恐怕你不能用NuGet做这种事。这是因为NuGet CLI不修改项目文件或packages.config。当我们修改项目文件时,我们需要通过中的NuGet API来完成,但是只有包管理器控制台才能提供对visual studio对象的访问:
https://github.com/NuGet/Home/issues/1512
这就是为什么我说最简单的方法是在Update-Package -Id -reinstall中使用命令行前螺纹的原因。然后,我还给出了从根本原因解决此问题的另一种方法,使用.targets文件将可执行文件复制到项目根目录,请检查我的更新答案。
当然,要解决这个问题还有一个简单的想法,只需在项目中添加一个预构建事件,将可执行文件复制到项目根:
xcopy /Y "$(SolutionDir)packages\MyToolPackage.1.0.0\Tools\wkhtmltopdf.exe" "$(ProjectDir)"希望这能有所帮助。
https://stackoverflow.com/questions/51411881
复制相似问题