2013-02-03 81 views
3

我正在按照在「Create a NuGet package that shows update notifications」處找到的解決方案來獲取nuget包更新的通知。NuGet init.ps1執行兩次

但init.ps1腳本正在執行兩次。

我把所有的代碼都刪掉,只有init.ps1中有以下內容。

param($installPath, $toolsPath, $package, $project) 
if ($project -eq $null) { 
$project = Get-Project 
} 

Write-Host "Hello, I'm running inside of init.ps1" 

當我關閉解決方案並重新打開它時,在輸出窗口中出現兩次文本。

duplicate init execution

我使用VS 2012,的NuGet 2.2.31210

我檢查了packages.config文件,只有一個我包的條目。

爲什麼它運行兩次,有什麼辦法讓它只運行一次?

謝謝, 喬

+0

您的第三行有一個錯字'$ projet = Get-Project'應該是'$ project = Get-Project' – malgca

+0

第二天和Windows重新啓動後,我無法再次重現問題。嘆。似乎我忘記了基本規則,如果有什麼奇怪的事情發生並且不起作用,請首先重新啓動。 –

+0

你並不瘋狂。我只是遇到了同樣的問題,一遍又一遍...直到我重新啓動VS,並且無法重現問題。 – mbargiel

回答

2

在init.ps1腳本Get-項目將在解決方案返回一個隨機項目,但沒有具體的項目包已經安裝。

使用$ projects = Get-Project -All獲取解決方案中的項目列表,循環遍歷項目並搜索packages.config以檢查當前項目是否安裝了該軟件包。