无法使用Jenkins从Powershell脚本导入模块

无法使用Jenkins从Powershell脚本导入模块,jenkins,continuous-integration,psake,Jenkins,Continuous Integration,Psake,我正在尝试使用Psake在Jenkins服务器上构建我的Asp.NETMVC解决方案。我已将Powershell脚本和Psake脚本签入源代码。我创建了一个引导程序文件build.ps1,用于导入和调用Psake 导入模块。\Psake.4.5.0\Psake.psm1 Invoke-Psake -buildFile .\default.ps1 ` -taskList Default ` -framework '4.6' ` -parame

我正在尝试使用Psake在Jenkins服务器上构建我的Asp.NETMVC解决方案。我已将Powershell脚本和Psake脚本签入源代码。我创建了一个引导程序文件build.ps1,用于导入和调用Psake

导入模块。\Psake.4.5.0\Psake.psm1

    Invoke-Psake -buildFile .\default.ps1 `
        -taskList Default `
        -framework '4.6' `
        -parameters @{'solutionFilePath'='..\Application.sln'}
我的所有任务都在我试图调用的default.ps1文件中定义。当我在本地运行脚本时,Psake模块被导入,一切正常。但在Jenkins服务器上,我收到以下错误:

Import-Module : The specified module '.\Psake.4.5.0\psake.psm1' was not loaded 
because no valid module file was found in any module directory.At C:\Program 
Files (x86)\Jenkins\workspace\Atmosphere\Build\Build.ps1:9 char:1
+ Import-Module .\Psake.4.5.0\psake.psm1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (.\Psake.4.5.0\psake.psm1:S 
   tring) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Comm 
   ands.ImportModuleCommand
我是Jenkins的新手,之前使用过TeamCity,我已经仔细检查了Psake模块是否确实被复制到Jenkins的工作区

这就是我从Jenkins调用Build.ps1的方式

Powershell.exe-noprofile-executionpolicy-Bypass-file。\Build\Build.ps1


有人能告诉我我做错了什么吗?

好的,我终于解决了这个问题,并想分享解决方案,以防其他人碰到它。运行Powershell脚本时。\n将自动解析为当前目录。然而,当我们从Jenkins执行脚本时,我们需要引用Jenkins工作区的路径并使用完整路径。为此,Jenkins提供了变量$ENV:WORKSPACE

我使用的任何地方。\n我将其更改为使用$ENV:WORKSPACE

所以

导入模块。\Psake.4.5.0\Psake.psm1

导入模块$ENV:WORKSPACE\Build\Psake.4.5.0\Psake.psm1

它开始工作了