Взгляните на описание правила .
Если явно не объявить видимость переменной-члена, это может привести к тому, что вы будете иметь видимость, которую вы не ожидаете, и потенциально оставить ее открытой для неожиданного изменения другими классами.
blockquote>Если у вас есть свойство пакета класса private, тогда любой класс в этом же пакете может изменить это свойство.
Но у пакета Private все еще есть действительное использование. Например, вы можете объявить класс как частный пакет, чтобы его можно было использовать внутри пакета, в котором он объявлен, но остается скрытым от публичного использования.
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.
Похоже, ваша проблема в том, как разрешены относительные пути. Относительные пути разрешаются на основе текущего местоположения (хранится в $ pwd
), а не на основе местоположения скрипта. Поэтому, если вы запустили сценарий из C: \
, он определенно не будет работать.
Я бы посоветовал вам рассчитать пути на основе аргумента (как показывает Питер Сил) или получить фактическое местоположение скрипт из:
$MyInvocation.MyCommand.Path