Bağımsız bir Chocolatey paketi yapıyorum. Paket klasörü aşağıdakileri içerir: app.nuspec
, app.exe
, app.nupkg
ve tools
alt klasörü. chocolateyInstall.ps1
şu şekildedir:Chocolatey paketindeki bir EXE'yi chocolateyInstall.ps1'den nasıl kullanabilirim?
$packageName = 'app'
$fileType = 'exe'
$silentArgs = '/VERYSILENT'
$url = '../app.exe' # the location of the file relative to the tools folder
Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Ben çalıştırın:
choco install app -y
alıyorum:
Copy-Item : cannot find the path C:\ProgramData\app.exe because does not exist
nasıl bu iş yapabilirsiniz
? 'Şimlerle kendi kendine yeten bir paket yarat' hakkında biraz okudum ama bunu nasıl kullanacağımı anlamıyorum. Herhangi bir yardım? Ben de burada bu başka bir çözüm çalışır ( http://patrickhuber.github.io/2015/03/19/creating-enterprise-versions-of-public-chocolatey-packages.html) bulduk 1DÜZENLEME teşekkür ederim. Yani benim durumumda olurdu:
$directory = $PSScriptRoot
$packageName = 'app'
$fileType = 'exe'
$silentArgs = '/VERYSILENT'
$url = Join-Path $directory '..\app.exe'
Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Ben $PSScriptRoot
değişken nedir merak ediyorum?
Göreli yollar ile çalışmaz. Gary'nin cevabına bir bakın. Ayrıca, “choco new pkgname” in bu hakkı elde etmek için ihtiyacınız olan her şeyi ürettiğini unutmayın. – ferventcoder
'$ PSScriptRoot',' $ (Split-Path $ MyInvocation.MyCommand.Path) 'ile aynıdır, ancak PowerShell v3 + 'da kullanılabilen bir otomatik değişkendir. Eski yöntemi kullanmanizi öneririz - sadece sadece 3+ (yani Windows 8/Windows 2012 ve üstü veya tüm makinelerinizde WMF'ye sahip olan makineler varsa) varsa, sorun olmadan "$ PSScriptRoot" kullanmakta fayda var demektir . – ferventcoder