私は自己完結型のChocolateyパッケージを構築しています。パッケージフォルダには、app.nuspec
,app.exe
、app.nupkg
、およびtools
というサブフォルダが含まれています。私は実行するとchocolateyInstall.ps1のChocolateyパッケージでEXEを使用するにはどうすればよいですか?
$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
:chocolateyInstall.ps1
はこのようなものです
choco install app -y
私が取得:
Copy-Item : cannot find the path C:\ProgramData\app.exe because does not exist
は、どのように私はこの作業を行うことができますか?私はシムで自己完結型パッケージを作ることについて少しは読んだことがありますが、実際にそれを使う方法は分かりません。どんな助け?私もここにこの他の解決策の作業を行います(http://patrickhuber.github.io/2015/03/19/creating-enterprise-versions-of-public-chocolatey-packages.html)を発見した1
EDITお願いします。だから、だろう私の場合:
$directory = $PSScriptRoot
$packageName = 'app'
$fileType = 'exe'
$silentArgs = '/VERYSILENT'
$url = Join-Path $directory '..\app.exe'
Install-ChocolateyPackage $packageName $fileType $silentArgs $url
私は$PSScriptRoot
変数は何か不思議でしたか?
相対パスでは機能しません。以下のゲイリーの答えを見てください。 'choco new pkgname'は、この権利を得るために必要なものすべてを生成することにも留意してください。 – ferventcoder
'$ PSScriptRoot'は' $(Split-Path $ MyInvocation.MyCommand.Path) 'と同じですが、PowerShell v3 +で利用可能な自動変数です。以前の方法を使用することをお勧めします.3台以上のマシン(Windows 8/Windows 2012以降のマシン)を使用している場合、WMFを他のすべてのマシンでアップグレードしている場合は、問題なく '$ PSScriptRoot'を使用しても問題ありません。 – ferventcoder