繁体   English   中英

通过nuget命令行执行powershell脚本

[英]Execute powershell scripts through nuget command line

我做了一个本机包,其中包括本机DLL。 该包就像SqlServerCompact.4.0.8852.1.nupkg

当我通过“ Manage Nuget Packages ...”通过GUI安装软件包时,一切都很好,本机DLL被复制到Debug / Release文件夹中。 复制本机Dll是通过类似于SqlSerCompact中的脚本完成的。

我有以下.bat文件来自动化MyProject的打包程序:

..\..\tools\nuget\bin\NuGet.exe install MyProject\packages.config -o packages\
..\..\tools\nuget\bin\NuGet.exe install MyProjectTest\packages.config -o packages\
..\..\tools\nuget\bin\nuget update MyProject.sln
msbuild /m /p:Configuration=Release /p:Platform="x64" MyProject.sln
..\..\tools\nuget\bin\nuget pack MyProject.nuspec

上面的脚本运行完美,以获取MyProject.nupkg (编译只需要.Net dlls)。 但是nuget install不会在依赖项程序包中执行复制脚本-因此编译MyProjectTest很好,但是在执行其EXE时,其Debug / Release文件夹中没有本地DLL。

我的问题是为什么从命令行安装软件包时不执行powershell脚本? 以及如何处理呢? 谢谢!

NuGet.exe不支持它。 有关此问题的代码复合体有一个讨论,并且在问题跟踪系统中提出了一些已经关闭的问题。 David Ebbo也有一篇博客文章,介绍了支持此功能的问题。

普遍的问题是,在PowerShell脚本中,您可以使用Visual Studio对象模型,以便能够从Visual Studio外部公开它并支持所有方案都是不平凡的。

我看到支持从Visual Studio外部运行PowerShell脚本,使用SharpDevelop作为实验来查看可能的内容。 这是一个非常重要的解决方案,因为它需要SharpDevelop才能工作,而不仅仅是NuGet.exe。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM