Сценарий PowerShell в PostBuild

Взгляните на описание правила .

Если явно не объявить видимость переменной-члена, это может привести к тому, что вы будете иметь видимость, которую вы не ожидаете, и потенциально оставить ее открытой для неожиданного изменения другими классами.

blockquote>

Если у вас есть свойство пакета класса private, тогда любой класс в этом же пакете может изменить это свойство.

Но у пакета Private все еще есть действительное использование. Например, вы можете объявить класс как частный пакет, чтобы его можно было использовать внутри пакета, в котором он объявлен, но остается скрытым от публичного использования.

17
задан brad 1 May 2009 в 20:45
поделиться

2 ответа

I've made this work in the past (see http://sharepointpdficon.codeplex.com/SourceControl/changeset/view/13092#300544 if interested):

C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -NoLogo -NonInteractive -Command .'$(ProjectDir)Deployment\PostBuildScript.ps1' -ProjectDir:'$(ProjectDir)' -ConfigurationName:'$(ConfigurationName)' -TargetDir:'$(TargetDir)' -TargetFileName:'$(TargetFileName)' -TargetName:'$(TargetName)

Then throw these parameters in the first line of your post-build script (if you think you may be able to use them):

param($ProjectDir, $ConfigurationName, $TargetDir, $TargetFileName)

Also I should point out, I am not using this presently. I did like using it as a quick scratchpad to reload test data for running integration tests.

26
ответ дан 30 November 2019 в 12:44
поделиться

Похоже, ваша проблема в том, как разрешены относительные пути. Относительные пути разрешаются на основе текущего местоположения (хранится в $ pwd ), а не на основе местоположения скрипта. Поэтому, если вы запустили сценарий из C: \ , он определенно не будет работать.

Я бы посоветовал вам рассчитать пути на основе аргумента (как показывает Питер Сил) или получить фактическое местоположение скрипт из:

$MyInvocation.MyCommand.Path
3
ответ дан 30 November 2019 в 12:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: