0

Java プロジェクト用の NSIS スクリプトを作成しました。Eclipse に nsis プラグインをインストールしました。プラグインを使用して nsi ファイルを作成しました。次に、nsi ファイルをコンパイルしたいと思います。Eclipse で Ant を使用しようとしました。

<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="nsis" basedir=".">
    <property name="build.path" value="build"/> 
        <property name="deploy.dir" value="/opt/test"></property>
    <path id="library.classpath">
            <fileset dir="lib">
                <include name="nsisant-1.2.jar"/>
            </fileset>
        </path>
    <target name="nsis" description="compile nsis script">
        <mkdir dir="${build.path}/nsis"/>
        <nsis script="setup.nsi">
            <classpath refid="library.classpath"/>
        </nsis>
    </target>
    </project>

しかし、それは次のエラーをスローします。

 BUILD FAILED
    build.xml:12: Problem: failed to create task or type nsis
    Cause: The name is undefined.
    Action: Check the spelling.
    Action: Check that any custom tasks/types have been declared.
    Action: Check that any <presetdef>/<macrodef> declarations have taken place.

なぜこれが起こるのかわかりませんか?? antを使用してnsiファイルをコンパイルするには? または、antを使用せずにコンパイルする他の方法はありますか?

4

2 に答える 2

2

専用nsisタスクを使用するのが最善の方法のようですが、おそらく最も単純ではありません。makensis.exeそのような構文を使用して実行するだけです:

<exec executable="C:\Program_Files\NSIS\makensis.exe" failonerror="true" >
  <!-- providing some nsis definitions -->
  <arg value="/DPROJECT_NAME=${ant.project.name}"/>
  <!-- passing the script -->
  <arg value="${basedir}\raport.nsi"/>
</exec>

2 番目の質問については、はい、ant なしで nsis スクリプトをコンパイルできます。例えば:

C:\Program_Files\NSIS\makensis.exe /DPROJECT_NAME=this-project my-script.nsi

Linuxを使用しているため、makensisどこかにあるはずです。

ものは私のPROJECT_NAMEカスタマイズです。最も単純なケースでは、定義を指定せず、その部分を省略します。

于 2012-10-30T14:29:54.127 に答える
1

Nsis Ant Sourceforge プロジェクトの NSIS Ant Task を使用していますか? インストールしたら、次のように使用できます。

<taskdef name="nsis" classname="net.sf.nsisant.Task">
    <classpath location="nsisant-{version}.jar">
</taskdef>
于 2012-10-30T09:12:10.850 に答える