标签: psake

如何从psake构建运行代码优先迁移?

我可以输入Update-Database,Enable-Migrations等等,从包管理器控制台,它工作正常.

如果我需要从常规的PowerShell会话或psake构建文件中执行相同的操作,那么我该如何操作呢?

我尝试导入模块EntityFramework.5.0.0\tools\EntityFramework.psm1从包目录,我没有得到的Update-Database,Enable-Migrations功能的,但我不能提供他们的观点-他们需要一个项目,源代码和6个-而且是没有任何文档.我是否可以在CI链中的某台机器上自动部署数据库?

powershell entity-framework psake ef-migrations

5
推荐指数
1
解决办法
5545
查看次数

我可以设置visual studio在构建时使用psake吗?

我想在构建时将visual studio设置为默认使用Psake构建.这可能比他的价值更多的努力吗?

.net build psake

5
推荐指数
1
解决办法
803
查看次数

详细的偏好不起作用

我想$VerbosePreference在我的构建脚本中使用Verbose preference().我使用的巧克力 psake的版本(所以调用批处理文件),我不能让它在所有很好地工作.

-Verbose交换机的工作原理都没有.我最后添加了一个属性并将其传入.它被传入然后我将其设置$VerbosePreference为'Continue',如果它是真的,否则'SilentlyContinue'.我创建了一个执行此操作的函数.在那个功能中,如果我打电话Write-Verbose,它就有效.但是在任务中,它没有.如果我$VerbosePreference在任务中设置,它不起作用.基本上,我不能Write-Verbose在任务中使用.我在这里错过了什么概念?完全flumoxed ...

psake

5
推荐指数
0
解决办法
153
查看次数

为什么不以我期望的方式评估我的财产?

我有一个简单的psake脚本:

properties {
    $SolutionDir = "SOLUTIONDIR" # Resolve-Path ".\src"
    $Config = "Debug"
    $DeployBaseDir = "$SolutionDir\RMSS.Setup.WiX\bin\$Config"
    $InstallerName = "RMSForMoversSuite_2_0_0"
}

task default -depends Test

task Test {
    "CONFIG = $Config"
    "SOLUTIONDIR = $SolutionDir"
    "DEPLOYBASEDIR = $DeployBaseDir"
}
Run Code Online (Sandbox Code Playgroud)

我从命令行调用它,如下所示:

& .\psake.ps1 .\deploy.ps1 -properties @{"Config"="Staging"}

我希望$DeployBaseDir等于SOLUTIONDIR\RMSS.Setup.WiX\bin\Staging

但相反,我得到这个输出:

CONFIG = Staging
SOLUTIONDIR = SOLUTIONDIR
DEPLOYBASEDIR = SOLUTIONDIR\RMSS.Setup.WiX\bin\Debug
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我发生了什么,为什么,以及如何获得我期望的行为?

powershell psake

4
推荐指数
1
解决办法
1316
查看次数

如何将属性传递给巧克力版的psake

我用Chocolatey安装了psake.这允许您使用psakepowershell或Windows命令行中的命令运行psake .

但是当我尝试使用以下命令将属性传递给psake时

psake TestProperties -properties @{"tags"="test"}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

PS D:\projects\WebTestAutomation> psake TestProperties -properties @{"tags"="test"}
"& 'C:\Chocolatey\lib\psake.4.2.0.1\tools\\psake.ps1' TestProperties -properties System.Collections.Hashtable
C:\Chocolatey\lib\psake.4.2.0.1\tools\psake.ps1 : Cannot process argument transformation on parameter 'properties'. Cannot convert the "System.Collections.Hashtable" value of
 type "System.String" to type "System.Collections.Hashtable".
At line:1 char:80
+ & 'C:\Chocolatey\lib\psake.4.2.0.1\tools\\psake.ps1' TestProperties -properties <<<<  System.Collections.Hashtable; if ($psake.build_success -eq $false) { exit 1 } else { e
xit 0 }
    + CategoryInfo          : InvalidData: (:) [psake.ps1], ParameterBindin...mationException
    + FullyQualifiedErrorId : ParameterArgumentTransformationError,psake.ps1
Run Code Online (Sandbox Code Playgroud)

有关如何克服这一点的任何想法

psake chocolatey

4
推荐指数
1
解决办法
893
查看次数

如何在psake中正确使用-parameters和-properties?

我有以下psake脚本

properties {
    $ApplicationName = "test"
    $ApplicationPath = "c:\this\is\$ApplicationName"
}

Task test {
    "ApplicationName = $ApplicationName"
    "ApplicationPath = $ApplicationPath"
}
Run Code Online (Sandbox Code Playgroud)

我想只将ApplicationName传递给脚本,以避免键入整个应用程序路径.但是当我使用-parameters标志时,不会对属性应用任何更改

Invoke-psake .\script.ps1 -parameters @{ApplicationName = "another_test"} test

ApplicationName = test
ApplicationPath = c:\this\is\test
Run Code Online (Sandbox Code Playgroud)

这听起来不对,因为应该在任何属性块之前评估参数.当我使用该-properties标志时,应用程序名称被更改,但不是路径

Invoke-psake .\script.ps1 -properties @{ApplicationName = "another_test"} test

ApplicationName = another_test
ApplicationPath = c:\this\is\test
Run Code Online (Sandbox Code Playgroud)

所以属性已经初始化了,但不应该-parameters覆盖这种行为?

psake

4
推荐指数
1
解决办法
2013
查看次数

什么是Psake用于?

扩展C#解决方案或构建自动化脚本..如果它用于构建解决方案,为什么它必须使用MSbuild ...而且还将在其中编写清理脚本

build-automation continuous-integration psake

3
推荐指数
1
解决办法
561
查看次数

获取执行脚本的当前目录,而不是脚本的当前执行目录

我想获取执行脚本的当前目录,而不是脚本的当前执行目录。

该脚本位于 'd:\projects\code\development.tools' 中,我想要位于 'd:\projects\code\development\ace\ace.testing' 中的项目目录

现在,当我在 Psake Properties 之外执行“Write-Host $Env:PWD”或“$Env:PWD”时,我实际上得到了我想要的东西,但是当我尝试从 Properties 中获取它时,它会返回什么$PWD 返回,这是脚本的执行目录。

Write-Host $Env:PWD # returns d:\projects\code\development\ace\ace.testing

Properties {
    $baseDir = $Env:PWD # returns d:\projects\code\development\.tools
}
Run Code Online (Sandbox Code Playgroud)

我不确定这里发生了什么,但我无法弄清楚。

我试图将正确的路径存储在一个变量中,但它并没有真正起作用。

更新:

花了几个小时后,我意识到它确实有效!我正在断断续续地编写该脚本,并在某处放置了一个 throw 语句,却忘记了它在那里!所以我认为 Psake 正在做一些奇怪的事情,因此它不起作用,但是 Psake 是纯粹的!;)

因此,如果您想获取正在执行脚本的当前目录 $Env:PWD 似乎可以做到!:)

powershell psake

2
推荐指数
1
解决办法
9161
查看次数

PSAKE powershell&执行任务未运行

试图让PSAKE脚本工作.似乎任务没有执行其中的功能?

我有2个文件

-- default.ps1 --
Import-Module "C:\dev\Phoenix\trunk\Build\BuildScripts\include.ps1"
Import-Module "C:\Software\PSAKE\JamesKovacs-psake-b0094de\psake.psm1"
Invoke-psake "C:\dev\Phoenix\trunk\Build\BuildScripts\build.ps1"
remove-module psake


-- build.ps1 --
$framework = '4.0'

properties {
    $root_dir = 'c:\dev\Phoenix\trunk\'
    $integration_deploy_dir = '\\Server025\Phoenix_IntegrationTests\'
    $build_scripts_dir = '$root_dir\Build\BuildScripts'
    $test_dir =  Join-Path $root_dir '\Tests\Core.UnitTests\bin\Debug'
    $dll = Join-Path $test_dir 'Phoenix.Core.UnitTests.dll'
} 


task default -depends Test

task MsBuild {  exec { msbuild /version }}

task Test -depends Deploy
{
    Write-Host "Start task Test"
Add-PSSnapIn Gallio
Write-Host "TEST --  $dll" 
Test-Gallio $test_dir Release x64 $dll "Core.UnitTests"     ## FYI - call to include …
Run Code Online (Sandbox Code Playgroud)

powershell build psake

1
推荐指数
1
解决办法
1651
查看次数