通过nuget命令行执行powershell脚本

Yin*_*Zhu 2 .net nuget

我做了一个本机包,其中包括本机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
Run Code Online (Sandbox Code Playgroud)

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

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

Mat*_*ard 7

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

一般的问题是,在PowerShell脚本中,您可以使用Visual Studio对象模型,以便能够从Visual Studio外部公开它,并且支持所有场景并非易事.

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