问题标签 [psake]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 如何在 psake 脚本中调试/诊断 Powershell Copy-Item 命令失败的原因?
我有一个非常简单的脚本,它在遵循psake约定(和示例)的任务构建部分中使用 Copy-Item 。现在,这就是它试图简化脚本以调试此问题所做的一切。
错误:
2011 年 7 月 18 日下午 5:40:57:发生错误:
Exec:执行命令时出错:Copy-Item "$src_dir..\somefolder*.dll" $bin_dir
我试过通过 Write-Host 输出文件路径,它们看起来很好。
我需要一些帮助,请调试这个,让脚本代码(Copy-Item)独立工作以psake不是目标。
剧本:
另请注意:
该脚本正在运行,并且只是在最近的过去间歇性地失败,但现在似乎更加一致地失败。
通过以下方式执行:
teamcity - TeamCity + Psake + SqlCmd Powershell 无限循环
我正在尝试使用 TeamCity 6.5.2 中的 Powershell Runner 来运行 Psake 任务,该任务依赖于调用 SqlCmd 的任务。如果我尝试这样做,teamcity 似乎会进入一个无限循环,直到它最终超时或出错。
我在 TeamCity 中使用了 -Command 选项,否则错误不会冒泡到 TeamCity。
它似乎与SqlCmd有关。我找到了这个博客并尝试将 sqlcmd 编码调整为 Unicode,但没有运气。
有没有其他人看到过这种行为,如果有,如何解决?
msdeploy - psake 调用 msdeploy.cmd 并使用包含 & 符号的参数
我有一个 psake 脚本来管理我的部署,过程如下:
- 编译和运行测试
- 使用 msbuild 生成部署包
- 检查我们是在内部部署还是在外部部署
- 如果是内部的,执行生成的cmd文件
- 如果是外部的,则提示输入用户名和密码,并以用户名和密码作为参数执行生成的 cmd 文件
我在外部部署时以以下方式执行 msdeploy:
当密码包含与号 (&) 时,我假设 cmd 文件在将参数分配给变量时会分配 & 之前的密码部分,然后尝试执行该部分。这是 bat 文件行为(& 用于分隔命令)。
我尝试在提示输入密码时使用插入符号 (^) 转义密码,但这没有用。
除了更改密码,还有其他选择吗?
powershell - PSAKE powershell & 执行任务未运行
试图让 PSAKE 脚本工作。似乎任务没有执行其中的功能?
我有 2 个文件
目前,它似乎只是“打印出”任务中列出的内容,而实际上没有做任何事情。我错过了什么?谢谢
抱歉忘了提我真的只想让 COPY 方法先工作——谢谢
感谢您的帮助 - 我已经提出了您的所有建议,但仍然没有运气。
如果我将代码“内联”而不是放在 PSAKE 任务中,则代码运行良好。
我现在有这个
-- build.ps1 $framework = '4.0'
其输出如下:
所以似乎任务中的功能刚刚被打印出来。
复制功能未运行 - Piped .SvcLog 文件也未删除
即在我期望的屏幕上
'开始任务部署'
代替
Write-Host '开始任务部署'
我会继续努力让它发挥作用。
谢谢你的帮助!!!
powershell - 使用 psake、exec 和 msbuild 时如何正确转义目录?
我可以在 PowerShell 中执行以下命令:
路径已更改,但真实路径也包含间隔组件。双斜线是来自例如this answer的一个技巧。
如果我直接运行它,就可以msbuild
理解路径。但是,它需要像这样运行:
如果路径没有空格,那可以工作,但我想调整它以使用空格(对于 sln 路径和 OutDir)。我试过了,但我无法弄清楚逃脱。
编辑:
为了澄清,如果我在 psake 中对完整路径进行硬编码,它也可以工作:
但是,它需要使用 OutputDir 变量(不是双斜杠转义的)。因此,我为此添加了一个临时变量,然后尝试构造命令行。:
这不起作用(我尝试了几种变体)。有了上面我得到“MSB1008:只能指定一个项目”。
msbuild - 从 powershell 执行时,Teamcity 不会检测到 msbuild 或 nUnit 故障
我使用在 Teamcity 中运行的 psake 编写了一个构建脚本。
我有 Teamcity 6.0,所以我从 .cmd 运行 psake,但我认为这不会改变任何东西。
一切正常,但我有两个问题。
Nunit 没有与 Teamcity 通信,因此当测试失败时,Teamcity 会说一切正常。
MsBuild 的行为相同。即使构建失败,Teamcity 也会报告成功。
我想知道如何让 Teamcity 检测到这些故障。
这是我的示例脚本:https ://github.com/MikeEast/BuildTests/blob/master/build/build.ps1
asp.net-mvc - TeamCity 触发的构建步骤始终构建 - 即使没有更改
问题:我将 TeamCity 设置为 ASP.NET MVC 项目的构建服务器。我正在使用 Powershell 和 psake 对我们的 .csproj 文件运行 msbuild 并创建一个可部署的包。从构建服务器,我可以打开 powershell,运行脚本,并且由于没有源代码更改,msbuild 不会重新生成项目 DLL 文件。但是,当我从 TeamCity Web 界面调用完全相同的脚本时,msbuild 总是会重建并重新生成 DLL 文件,即使没有任何更改。不是它应该做的AFAIK。
我已将这个问题缩小到一个步骤。为了简单起见,我设置了我的 TeamCity 配置,因此它不使用任何源代码控制,它运行一个调用我的 powershell 脚本的“powershell”构建步骤。
powershell 脚本运行一个命令:
当我从 powershell 命令行手动调用脚本时,我看到:
当我通过 TeamCity 调用完全相同的脚本时,我看到:
任何想法为什么从 TeamCity 运行此脚本会导致 msbuild 检测更改并重建,但手动运行完全相同的脚本不会?
更新: 认为这可能是由于 TeamCity Powershell 运行程序的一些怪癖引起的,我只是尝试制作一个批处理文件,将脚本传递到 Powershell.exe 并使用命令行运行程序调用它:
我得到了完全相同的行为。如果我从命令行调用这个批处理文件,msbuild 会跳过编译。如果我从 TeamCity 调用它,则会重新编译 DLL。
更新#2: 尤里卡!我在msbuild中打开了诊断调试,找到了强制重新编译的原因。它是由GenerateTargetFrameworkMonikerAttribute目标引起的。以下是日志输出的关键位:
看起来此目标在 TEMP 环境变量中指定的 TEMP 目录中创建/更新了一个 AssemblyAttributes 文件。显然,TeamCity 覆盖了 TEMP 环境变量并将其设置为:C:\TeamCity\buildAgent\temp\buildTmp,并且在每次构建之前都会清理该目录。
如果我从 powershell 调用 Get-ChildItem Env: 我可以看到这一点:
但是,如果我从 TeamCity 调用的 powershell 脚本中调用它:
关键是在重新生成此文件后:
这就是重新编译整个项目的原因。
当我从 Powershell 运行脚本时,临时目录没有更改或清理,并且构建按预期运行。
那么,任何人都知道如何更改创建此 AssemblyAttributes 文件的目录,或者告诉 TeamCity 使用不同的 TEMP 目录?我必须相信这是其他人遇到的问题。
谢谢!
msbuild - 将 psake 与 MsBuild 集成
我正在为 CI 使用 MSBuild。我最近希望将 psake 作为为日常构建创建脚本的附加工具,因为我需要对我们的构建进行一些更新,这在 psake 中会更容易。目前我不打算替换我们现有的脚本,因为它需要大量工作,但保留现有脚本并使用 psake 添加新脚本。
我的问题是 - 当我在 TFS 中创建构建时,如何在构建解决方案后运行 psake 脚本?我的理解是我需要在构建执行后添加一个新目标并执行psake/powershell。这是正确的方法吗?
visual-studio - 使用 psake 构建 Visual Studio 2003 解决方案或 .NET 1.1 项目
不幸的是,我混合了 .NET 版本的项目。一些遗留代码在 .NET 1.1 中,而另一些在 .NET 3.5 中。我不能使用
因为 msbuild 不支持编译 .NET 1.1 解决方案。
如何使用 psake 构建 .NET 1.1 解决方案?我认为 psake 很酷,并且想利用它。
在命令提示符下,我可以
但我不知道如何在 psake 构建文件中做同样的事情。
continuous-integration - TeamCity 构建代理从哪里获取路径环境?
我正在尝试设置 TeamCity 来构建我的项目,但我的 psake buildscript 失败,原因被缩小到无法找到应该在路径上的 git 可执行文件。当我启动 PowerShell 并自己执行该操作时,一切正常。
Path环境变量的内容(如windows环境变量对话框中的系统变量列表,以及注册表中所示HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path
)为
然而 TeamCity 说它的 env.Path 只是
我已经重新启动了计算机(多次),但这没有任何帮助。
为什么 TeamCity 构建代理的 PATH 变量与系统默认值不同,我该如何解决?