2013-08-21 53 views
3

我有一個PowerShell腳本它建立新的TFS建立基於項目的定義。我使用PowerGUI腳本編輯器來運行腳本,並且腳本完美地工作。但是,當我嘗試在Wondows PowerShell中運行相同的腳本時,出現程序集加載錯誤。PowerShell腳本加載Aseemblies

新對象:無法找到類型[Microsoft.TeamFoundation.Client.TfsTeamProjectCollection]:確保包含此類型的程序集 已加載。

爲什麼這種行爲存在的,需要以運行使用WindowsPowerShell PowerShell腳本做什麼?

回答

3

,應與該DLL相關:

C:\ Program Files文件(x86)的\微軟的Visual Studio 11.0 \ Common7 \ IDE \ ReferenceAssemblies \ 2.0 \ Microsoft.TeamFoundation.Client.dll

它應該是類似的位置VS 2010的一個解決方案是使用Add-Type將其加載到當前會話:

Add-Type -Path "$FilePath\Microsoft.TeamFoundation.Client.dll" 

這個解決方案可能會更好,因爲您的腳本將始終檢查該dll,並且它不應該跨越環境。您對問題的描述聽起來像腳本非常依賴您的環境,並依靠PowerGUI正確執行。

根據您正在運行PowerShell控制檯的版本,this question提供更多的建議,從不同版本的.NET運行組件。您的Powershell控制檯版本可能已針對不同於dll的.NET版本進行了編譯,如果是這種情況,則必須轉到該問題並按照過程創建配置文件以使控制檯工作與其他版本的.NET。我會推薦使用this answer作爲你的例子。

+0

添加型-Path 「$文件路徑\ Microsoft.TeamFoundation.Client.dll」 爲我工作。我以不同的方式加載程序集,它使用PowerGUI應用程序,但與Windows PowerShell控制檯無關。 – user1636380