問題タブ [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 から Azure エミュレーターでサイトを実行するための CSPack と CSRun
AzureエミュレーターでWebサイトをローカルで実行するために、cspackおよびcsrunコマンドを機能させるためにしばらく時間を費やしました。これまでのところ、これは私が得たものですが、動作していません.psakeを使用しています
基本的に、Azure コマンドライン ツールが PowerShell でどのように機能するかについては、あまり感心していません。誰かがこの作業の例を持っていますか?
psake - psake で -parameters と -properties を正しく使用するには?
次のpsakeスクリプトがあります
アプリケーション パス全体を入力するのを避けるために、ApplicationName のみをスクリプトに渡したいと思います。しかし、-parameters
フラグを使用すると、プロパティに変更が適用されません
プロパティ ブロックの前にパラメーターを評価する必要があるため、これは正しくないように思えます。-properties
フラグを使用すると、アプリケーション名は変更されますが、パスは変更されません
したがって、プロパティは既に初期化されていますが、-parameters
この動作をオーバーライドするべきではありませんか?
windows - Powershell はすべての外部コマンドを新しいウィンドウで実行し、出力を省略します
件名で説明されているように、私の PowerShell 環境では、すべての外部コマンドが別のウィンドウで実行されています。私のチームのビルド スクリプトの典型的なテスト ランでは、次のようなものが含まれます。
- sln 内の各プロジェクトに対して実行される nuget.exe
- nunit テストランナー
それはかなり悪化しています。この動作により、新しいウィンドウが表示/非表示になるたびにマウス/キーボードのフォーカスが取得されるため、psake ビルドの実行中にマルチタスクを実行できなくなります。また、ビルド プロセスのさまざまなステップからの貴重な出力も飲み込んでしまいます。
Powershellがbats を実行するために cmd.exe を突然開くため、$env:PATHEXT を確認しましたが、正しく設定されています (セミコロンで区切られたリストの項目に .EXE が含まれています)。
チームでこの動作を確認したのは私だけですが、マシンのイメージを再作成した後も引き続き発生しているため、ユーザーのグローバル/ローミング プロファイルに関連付けられているようです。
リクエストに応じて追加情報を提供できます。
deployment - Psake - 同じタスクを複数回実行する
ウェブサイトのビルド/デプロイ スクリプトを作成しています。スキーマを更新するには、webconfig セットアップで Web サイトを開始する必要があるため、現在のプロセスは少し複雑です。次に、サイトをオフにし、スキーマを更新しないように webconfig を変更して、もう一度開始します。
タスクの反復性のため、-taskList のいくつかのタスクが 2 回以上あります。
例えば。
このタスク リストでは、各タスクが一度だけ実行されます。以前に実行されたかどうかを確認せずにタスクを実行するように psake を指定する方法はありますか?
powershell - psake タスクで使用する場合のモジュールで定義される関数のスコープ
以下のような psake タスクがあります (わかりやすくするために簡略化しています)。
関数 Set-Something (モジュール morefunctions.psm1 で定義されている) は、関数 Get-Something (somefunctions.psm1 で定義されている) を呼び出そうとします。エラーが発生すると、次のようになります。
「Get-Something」という用語は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。
興味深いことに、「morefunctions.psm1」を「Import-Module "somefunctions.psm1"」にも変更すると、その時点ですべて正常に機能しました。ただし、他のモジュールの存在に依存する必要がない限り、モジュールを「疎結合」にしたいので、これを行う必要はありません。
Powershell の関数/変数のスコープに関する私の知識は限られていますが、インポートされた 2 つの異なるモジュールの関数が同じスコープに存在するため、それらのモジュールの 1 つの関数が他のモジュールの関数を呼び出すことができると考えました。
私はpsakeタスクの中にいるという事実によってその範囲が影響を受けているのではないかと疑っています. ティア。
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 スクリプトは、依存オブジェクトを本当に構築する必要があるかどうかを評価しません。代わりに、依存オブジェクトは常に順番に評価されます。
ファイルなどの make ターゲットをビルドするスクリプトが、依存ファイルのいずれかがターゲット ファイルよりも新しい場合にのみ実行されるように、依存関係を実装する方法はありますか?
私は前提条件と事後条件を試してみましたが、成功は限定的でしたが、これは標準的な要件のようであり、私が過去に使用したすべての UNIX スタイルの「make」に含まれています。明らかな何かが欠けているように感じます。ヘルプ!
powershell - PowerShell で Invoke-Build を使用して動的ビルド タスクを作成する方法
Invoke-Build を使用して動的ビルド タスクを作成しようとしています。アプローチの例を以下に示します。従来の UNIX の make 機能と同様の方法で、入力ファイルが出力ファイルより新しい場合は、入力ファイルごとに出力ファイルが生成されます。
これは、一連の増分タスクを動的に生成し、タスクを呼び出すことによって実現されます。
増分タスクの生成の概要を以下に示します。
これは、必要な他の機能のスコープとは別に、うまく機能しているように見えます。タスク Task-Thing- が実行されたときに BuildThing.ps1 スクリプトをどこでソースしようとしても、Invoke-Build は BuildThing が次のように認識されないと文句を言います。
「コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前。」
Invoke-Build を実行する前に関連ファイルをドットソースすると、すべてが期待どおりに機能します。
これはスコーピングの問題のように思えますが、単純な方法で解決する方法は明確ではありません。
静的な方法で BuildThing.ps1 をループの外に含めようとすると、デバッグによって確認されたように呼び出されたように見えますが、動的タスクによって実行される範囲には含まれていないようです。