1

特に、PowerShell スクリプトを TeamCity ビルド ステップとして実行する際に奇妙な問題が発生していますSqlPs(ただし、SqlPs.

この 1 行のスクリプトは TeamCity で失敗します。

Import-Module SqlPs

次のエラーが発生します。

Import-Module : The specified module 'SqlPs' was not loaded because no valid
module file was found in any module directory.
At C:\TeamCity\buildAgent\temp\buildTmp\powershell2962302231054758126.ps1:13 
char:1
+ Import-Module SqlPs
+ ~~~~~~~~~~~~~~~~~~~
     + CategoryInfo          : ResourceUnavailable: (SqlPs:String) [Import-Module], 
     FileNotFoundException

     + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands
     .ImportModuleCommand

TeamCity が実行されている CI サーバーから PowerShell をネイティブに開くと、これを問題なく実行できるため、すべてが適切に構成されていると確信しています。

TeamCity がネイティブ PowerShell 内から生成する上記の一時スクリプト ファイルを実行することもでき、問題なく動作します。

さらに、Get-Moduleネイティブ PowerShell から実行すると、次のようになります。

Get-Module -ListAvailable

以下からいくつかのシステム モジュールをダンプします。

C:\Windows\system32\WindowsPowerShell\v1.0\Modules

以下の SqlSp モジュールとともに:

C:\Program Files\Microsoft SQL Server\110\Tools\PowerShell\Modules

しかしGet-Module、TeamCity ビルドから同じものを実行すると、システム モジュールのみが一覧表示され、モジュールは表示されませんSqlSp

権限に問題があるのではないかと思っていましたが、TeamCity が使用しているのと同じアカウントでネイティブ PowerShell にログインすると、まだ問題はありません。

また、それを除外するために、ビット数に x64 の代わりに x86 を選択しようとしましたが、どちらの方法でも失敗します。

引用"SqlPs"符を付けても役に立ちませんでした。

4

3 に答える 3

0

これは、これが機能しない理由の問題には対処していませんが:

Import-Module SqlPs

で完全修飾パスを指定することで、これを少なくとも機能させることができますImport-Module

Import-Module "C:\Program Files\Microsoft SQL Server\110\Tools\PowerShell\Modules\SQLPS\SQLPS.PS1"

最初のものが機能しない理由を知りたいです。

于 2015-03-28T02:59:19.917 に答える
0

問題の簡単な解決策は、モジュール パスをデフォルトのモジュール パスに追加することです。私の例を参照してください
$env:PSModulePath。powershell モジュールのこの環境変数を使用してください。デフォルトの psmodulepath に別のパスを追加したい
最初に、デフォルトのモジュール パスを参照してください。

C:\Users\soheil\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\Wind
owsPowerShell\v1.0\Modules\

ここで、別のパスをデフォルト パスに追加してみてください

$env:PSModulePath = $env:PSModulePath + ";c:\module\"

もう一度試して、デフォルト パスを確認してください

C:\Users\soheil\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\Wind
owsPowerShell\v1.0\Modules\;c:\module\
于 2015-03-28T10:20:13.177 に答える
0

この問題とは無関係の問題のため、TeamCity をバージョン 8 から 9 にアップグレードする必要がありました。理由はわかりませんが、SqlSpTeamCity 9 で問題なく動作するようになりました。

于 2015-03-28T03:54:12.447 に答える