2011-07-31 58 views
11

我想創建我的第一個NuGet包。我不知道爲什麼我的install.ps1腳本沒有被調用。這是目錄結構的NuGet - install.ps1不會被調用

--Package 
| 
- MyPackage.nuspec 
- tools 
| 
    - Install.ps1 
    - some_xml_file 

我使用此命令行 nuget.exe pack MyPackage.nuspec

當從VS包管理器控制檯install.ps1我安裝,包不會被調用建立包。

我想,也許我在腳本中有一些錯誤,這就是原因,所以我註釋掉了一切,但

param($installPath, $toolsPath, $package, $project) 
"ECHO"

但我沒有看到ECHO出現在包管理器控制檯。什麼可能是錯誤的?

回答

14

Install.ps只有在\lib和/或\content文件夾中存在某些內容時纔會被調用,但不適用於「僅工具」包。見here

包必須在內容或Install.ps1運行lib文件夾中的文件。只需在tools文件夾中添加一些內容就無法解決這個問題。

改爲使用Init.ps1(但是,每次打開解決方案時都會執行該操作)。

+0

謝謝,我沒有注意到它的幫助頁面。我將Install.ps1更改爲Init.ps1,它可以工作。但我仍然沒有看到ECHO。雖然我看到「成功安裝的packageName」 –

+0

一旦包已經安裝重新打開您的解決方案。但請確保包管理器控制檯已經可見。你應該看到'Init.ps1'腳本的任何輸出。 – mthierba

+0

是的,我在VS開始看到輸出。但不是在安裝包。這是正常的嗎? –

5

Install.ps1(和Uninstall.ps1)不再在v3中調用,但可以使用Init.ps1。見here

PowerShell腳本的支持進行了修改,不再執行安裝 和卸載腳本,但init腳本仍在執行。一些 的推理,這是無法確定 腳本需要運行該包時,不是所有的包通過一個項目中直接引用 。