更新:问题的实际原因是'\'绕错了方向,应该是'./GenerateNuspecFile.ps1' - F#解析很奇怪。
我无法从F#FAKE运行ps1脚本文件。
问题here适用于运行巧克力的cpack
#r "packages/FAKE.3.12.2/tools/FakeLib.dll"
#r "System.Management.Automation"
#r "System.Core.dll"
open Fake
open System.Management.Automation
...
Target "GenerateNuspecFile" <| fun _ ->
PowerShell.Create()
.AddScript("Invoke-Command -ScriptBlock { cd './chocolatey' | iex .\GenerateNuspecFile.ps1 }")
.Invoke()
|> Seq.iter (printfn "%O")
...
这实际上并没有运行我尝试运行的脚本文件。 Set-ExecutionPolicy是“不受限制的”
答案 0 :(得分:2)
您的powershell脚本存在一些问题,即使从命令行运行也无法运行。
特别是,cd .\somedir | iex .\SomeScript.ps1
是荒谬的 - 您正在管道cd
($null
的结果,因为cd
没有返回任何内容) Invoke-Expression
,基本上是说&#34;将此$ null作为脚本运行。&#34;。根本不应该Invoke-Command
。
如果您的目标只是运行GenerateNuSpecFile.ps1
,那么您的脚本应该是:
.AddScript("cd '<somepath>'; .\GenerateNuspecFile.ps1")
或者
.AddScript("& '<somepath>\GenerateNuspecFile.ps1'")