質問

私が開発しているゲームの最初のWindowsインストーラを開発する準備をしています。私はNSIが推奨されているのを聞いたが、私のニーズは基本的なものであり、私は正確に必要なものを理解することはできません。

「プログラムファイル」ディレクトリ(必要に応じて許可を要求する)にファイルのディレクトリをインストールできる短いNSISスクリプトを含めて、スタートメニューに単純なショートカットを作成し、追加/削除にアンインストーラを登録します。プログラムコントロールパネル

アンインストーラはディレクトリを削除してショートカットを削除し、ファイルが使用中の場合は再起動のように求められます。

最後に、古いファイルをすべてアンインストールして新しいファイルをインストールし、古いファイルが使用されている場合に再起動するように促して、アップグレードをサポートします。

これのビットと部分を実行するいくつかのNSHスクリプトをオンラインで見ました。私は自分自身を一緒にスリングしようとしています、そしてそれは何百列の長さになるように見えます。私のコードは間違ったことのように匂いがします。

私が本当に何百ものNSHになっているはずだと説明しているプログラムですか?確かに簡単な方法がありますか?

役に立ちましたか?

解決

eclipse をダウンロードします。 Eclipsensisプラグイン Eclipseに。それだけではなく、NSISファイル(コード補完とすべてのようなもの)用のフル機能エディタだけでなく、いくつかの質問に答えることによってスクリプトを作成するためのウィザードもあります(アプリケーションのタイトル、アイコン)。使用されるために、...)

他のヒント

これはかなり近いはずです(私はこのスクリプトをテストしませんでした)あなたは空白を記入して特定の文字列を置き換えるべきです...

!define Name "Foo"
Name "${Name}"
Outfile "${Name} setup.exe"
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
InstallDir "$ProgramFiles\${Name}"

!include LogicLib.nsh
!include MUI.nsh

Function .onInit
SetShellVarContext all
UserInfo::GetAccountType
pop $0
${If} $0 != "admin" ;Require admin rights on NT4+
    MessageBox mb_iconstop "Administrator rights required!"
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
    Quit
${EndIf}
FunctionEnd

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"


Section
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIR\Uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Foo By Bar Inc."   "DisplayName" "${Name}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Foo By Bar Inc."   "UninstallString" "$INSTDIR\Uninstall.exe"
;TODO: Install your files with the File command
CreateShortCut "$SMPROGRAMS\${Name}.lnk" "$INSTDIR\Foo.exe"
SectionEnd

Section "Uninstall"
;TODO: Delete your files
Delete "$SMPROGRAMS\${Name}.lnk"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Foo By Bar Inc."
Delete "$INSTDIR\Uninstall.exe"
RMDir "$INSTDIR"
SectionEnd
.

NSIのための素晴らしいウィザードは、あなたがあなたの最初のインストーラを通してあなたを導くことができるHM NIS編集、私は信じています。

http://hmne.sourceforge.net/

NSISにアップデータを提供したい場合は、いくつかのことをお勧めします。

  1. アプリケーションがあなたのサーバーからの更新を確認する方法を作成します。通常、最初にロードされたときに行われます
  2. 新しいインストーラをダウンロードして(アプリケーションから)実行しますが、おそらくあなたのWebサイトからそれを得ることができるが、そうであるが)。
  3. 古いプログラムが実行されている場合は、それをシャットダウンする必要があります。 NSISはプロセスを見つけてそれを殺すことができるプラグインを持っています。これは超「いい」ではありませんが、必要な場合があります。
  4. このプロセスプラグイン

    あなたが使用しているならば、あなたはそれらを削除するだけではありません。ただし、NSIでは、それらの名前を変更してから、次の再起動時にそれらを削除するためにそれらをマークします。

    Delete /REBOOTOK file.txt
    
    .

    その後、新しいDLLをフォルダにコピーします。

    NSISの場合、トンのプラグイン、サンプル、および偉大なヘルプがありますが、言語を学ぶことは少し時間がかかります。 Innoは学ぶのがずっと簡単ですが、あなたがニティグリッティに着くときにカスタマイズするのが難しいです。しかし、私は2つが全体的に匹敵すると言うでしょう、そしてどちらもうまくいくべきです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top