質問

私は私の解決策を更新するPowerShellスクリプトを持っています:

Add-PSSnapin Microsoft.SharePoint.PowerShell
write-host $args[0]
Update-SPSolution -Identity PkbInfo.SP.wsp -literalpath $args[0] -GACDeployment 
.

SP 2010管理シェル(コースの追加されていない)で実行すると、OKが実行されますが、NANTコマンドで実行しようとすると:

  <target name="sp.update">
    <exec failonerror="true" program="${powershell.exe}">   
    <arg value="-noprofile" />
    <arg value="-nologo" />
    <arg value="-noninteractive" />
    <arg value="-command" />
    <arg value="${ps.script.name} ${ps.copyto.folder}" />
    </exec>
  </target>
.

エラーを得ます:

     [exec] Update-SPSolution : c:\shared\PkbInfo.wsp: The specified file was no
t found.
     [exec] At C:\Users\me\Documents\production\sharepoint\nant_powershell
.ps1:5 char
     [exec] :18
     [exec] + Update-SPSolution <<<<  -Identity PkbInfo.SP.wsp -literalpath $arg
s[0] -GACDe
     [exec] ployment
     [exec]     + CategoryInfo          : ReadError: (:) [Update-SPSolution], Fi
leNotFound
     [exec]    Exception
     [exec]     + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdl
etUpdateSo
     [exec]    lution
     [exec]
     [exec] Update-SPSolution : Zgłoszono wyjątek typu 'Microsoft.SharePoint.Pow
erShell.SPC
     [exec] mdlet+SkipCurrentRecordException'.
.

だから、私が渡す議論は解析されていないように見えます。どちらの場合(管理シェルとNANT付)の両者の書き込みホストは正しいパスを表示します。 NANTを使用して実行すると、update-spsolutionの$ args [0]が実引数に変換されない理由は、

役に立ちましたか?

解決

リテラルパスの周囲に$()を試してみてください。

Update-SPSolution -Identity PkbInfo.SP.wsp -literalpath $($args[0]) -GACDeployment  
.

パスが相対的な場合はRESOLVE-PATHを使用することもできます。

サイドの注意:既存のアーティファクトを更新する限り、update-spsolution のみが機能するは、(例えば、新規または削除されたモジュール/機能/ rootfiles)を覚えておいてください。

他のヒント

実行しようとします。

Update-SPSolution -Identity PkbInfo.SP.wsp 
.

とあなたはエラーを得る:

 [exec] Update-SPSolution : c:\shared\PkbInfo.wsp: The specified file was no  
t found.
.

ファイル名を確認してください:)

(私はあなたが異なるアイデンティティとファイル名を持つことができることを知っていますが、誰もそれを右に変更しませんか?)

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top