问题标签 [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 - Powershell 和 PSake 从哪里执行 msbuild?
在进行构建自动化时,我遇到了一个问题。随着升级 Visual Studio 2013,MSBuild 的路径已经移动,如下所述http://timrayburn.net/blog/visual-studio-2013-and-msbuild/
我已经更新了我的系统路径以指向这个 msbuild 的新位置。使用常规的 cmd 提示 msbuild 就可以解决问题。但是在powershell中运行我的脚本,它似乎仍然选择了旧的,并显示了链接中描述的问题。如何查看和更改 powershell 和 psake 从何处获取 msbuild,以便我可以指向预期的版本?
psake - psake 中的依赖顺序是确定性的吗?
构建脚本是否保证按此顺序运行?
还是倒退?
还是随机的?
还是并行?
powershell - CSPack 和 CSRun 用于从 powershell 在 azure 模拟器中运行站点
我花了一些时间试图让 cspack 和 csrun 命令在 azure 模拟器中本地运行网站。到目前为止,这就是我得到的,但它不起作用我使用 psake
基本上,我对 azure 命令行工具如何与 powershell 一起工作的印象并不深刻。有没有人有这个工作的例子?
psake - 如何在 psake 中正确使用 -parameters 和 -properties?
我有以下 psake 脚本
我只想将 ApplicationName 传递给脚本,以避免输入整个应用程序路径。但是当我使用该-parameters
标志时,不会对属性应用任何更改
这听起来不对,因为应该在任何属性块之前评估参数。当我使用该-properties
标志时,应用程序名称已更改,但路径未更改
所以属性已经被初始化了,但是不应该-parameters
覆盖这个行为吗?
windows - Powershell 在新窗口中运行所有外部命令,省略输出
如主题中所述,我的 powershell 环境正在单独的窗口中执行所有外部命令。在我团队构建脚本的典型测试运行中,这包括以下内容:
- 为 sln 中的每个项目运行的 nuget.exe
- nunit 测试运行器
这是相当恶化的。这种行为实际上阻止了我在运行 psake 构建时进行多任务处理,因为它会在新窗口出现/消失时抓住我的鼠标/键盘焦点。它还吞噬了我们构建过程中各种步骤的宝贵输出。
根据Powershell 突然打开 cmd.exe 执行 bats,我检查了 $env:PATHEXT,但它设置正确(在其项目中包括 .EXE,这是一个以分号分隔的列表)。
我是团队中唯一看到此行为的成员,它似乎与我的用户的某些全局/漫游配置文件相关联,因为即使在我重新映像我的机器后它仍然会发生。
任何帮助将不胜感激,我可以根据要求提供更多信息。
deployment - Psake - 多次运行相同的任务
我正在为我们的网站创建一个构建/部署脚本。我们的流程目前有点复杂,因为它需要使用 webconfig 设置启动网站来更新我们的架构。然后我们关闭站点,更改 webconfig 不再更新架构,然后重新启动它。
由于任务的重复性,我们的 -taskList 任务不止一次。
例如。
在此任务列表中,每个任务只执行一次。有没有办法指定 psake 来运行任务而不检查它们之前是否运行过?
powershell - 在 psake 任务中使用时在模块中定义的功能范围
我有一个 psake 任务,如下所示(为清楚起见,已简化):
函数 Set-Something(在模块 morefunctions.psm1 中定义)尝试调用函数 Get-Something(在 somefunctions.psm1 中定义)。当它发生时,我得到一个错误:
术语“Get-Something”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。
有趣的是,我将“morefunctions.psm1”修改为“Import-Module”somefunctions.psm1”,此时一切正常。但是,我宁愿不必这样做,因为我希望我的模块是“松散耦合”的,因为它们不需要依赖其他模块的存在。
我对 Powershell 中函数/变量范围的了解有限,但我认为两个不同导入模块中的函数位于同一范围内,因此其中一个模块中的函数将能够调用另一个模块中的函数。
我怀疑该范围受到我在 psake 任务中这一事实的影响,我希望这里的人可以确认这一点,并建议我应该如何解决这个问题。TIA。
powershell - 获取执行脚本的当前目录,而不是脚本的当前执行目录
我想获取执行脚本的当前目录,而不是脚本的当前执行目录。
该脚本位于 'd:\projects\code\development.tools' 中,我想要位于 'd:\projects\code\development\ace\ace.testing' 中的项目目录
现在,当我在 Psake 属性之外执行 'Write-Host $Env:PWD' 或只是 '$Env:PWD' 时,我实际上得到了我想要的,但是当我尝试从属性中获取它时,它返回了什么$PWD 返回,这是脚本的执行目录。
我不确定这里发生了什么,但我无法弄清楚。
我试图将正确的路径存储在一个变量中,但它并没有真正起作用。
更新:
在花了几个小时之后,我意识到它确实有效!我一直在处理那个脚本,然后在某个地方放了一个 throw 语句,却忘记了它的存在!所以我认为 Psake 正在做一些奇怪的事情,因此它不起作用,但是 Psake 是纯粹的!;)
因此,如果您想获取正在执行脚本的当前目录 $Env:PWD 似乎可以做到!:)
powershell - 可以使用文件时间戳来定义 Psake PowerShell makefile 中的依赖关系吗?
根据我所见,Psake 域特定的 PowerShell 脚本不会评估是否真的需要构建依赖对象 - 而是始终按顺序评估依赖对象。
有没有办法实现依赖关系,以便构建生成目标的脚本(例如文件)仅在任何依赖文件比目标文件更新时才执行?
我尝试了前置条件和后置条件,但成功有限,但这似乎是一个标准要求,并且是我过去使用过的每一种 UNIX 风格的“make”。感觉就像我错过了一些明显的东西。帮助!
powershell - 如何在 PowerShell 中使用 Invoke-Build 创建动态构建任务
使用 Invoke-Build 我正在尝试创建动态构建任务,该方法的示例如下。其中,以与经典 UNIX make 工具类似的方式,如果输入文件比输出文件新,将为每个输入文件生成一个输出文件。
它通过动态生成一组增量任务然后调用这些任务来实现这一点。
增量任务的生成概述如下:
除了所需其他功能的范围之外,这似乎确实运作良好。无论我在哪里尝试在任务 Task-Thing- 执行时获取 BuildThing.ps1 脚本,Invoke-Build 都会抱怨 BuildThing 未被识别为:
“cmdlet、函数、脚本文件或可运行程序的名称。”
如果我在运行 Invoke-Build 之前点源相关文件,一切都会按预期工作。
这似乎是一个范围界定问题 - 但目前尚不清楚如何以直接的方式解决它。
如果我尝试以静态方式将 BuildThing.ps1 包含在循环之外,它似乎确实被调用,正如调试所证实的那样,但似乎不在动态任务执行的范围内。