ModifyTextFileAction не может найти и заменить значение - PullRequest
1 голос
/ 03 апреля 2019

У нас есть действие ModifyTextFile:

     <action name="Einstellungen anpassen FR" id="59" customizedId="" beanClass="com.install4j.runtime.beans.actions.text.ModifyTextFileAction" enabled="true" commentSet="true" comment="" actionElevationType="elevated" rollbackBarrier="false" rollbackBarrierExitCode="0" multiExec="false" failureStrategy="1" errorMessage="">
      <serializedBean>
        <java class="java.beans.XMLDecoder">
          <object class="com.install4j.runtime.beans.actions.text.ModifyTextFileAction">
            <void property="encoding">
              <string />
            </void>
            <void property="files">
              <array class="java.io.File" length="1">
                <void index="0">
                  <object class="java.io.File">
                    <string>userstrings.txt</string>
                  </object>
                </void>
              </array>
            </void>
            <void property="replaceValue">
              <string>22357,30,2, "Paramètres_Silent"</string>
            </void>
            <void property="searchValue">
              <string>22357,30,2, "Paramètres"</string>
            </void>
          </object>
        </java>
      </serializedBean>
      <condition />
    </action>

Проблема в том, что с помощью вышеуказанного действия всегда не удается найти текст, когда в свойстве searchValue есть символ с акцентом, например, 'è'.

Изменение отлично работает со стандартным латинским текстом, сбой только с ударением.

Мы попытались установить несколько значений свойств 'encoding' (1252, CP1252, Windows-1252, ISO 8859-1), но безуспешно.

Файл сам сообщает в notepad ++ как «ANSI», но мы не можем найти точную кодовую страницу. Мы не можем изменить исходную кодовую страницу, поскольку она должна оставаться такой, какой она есть из-за сторонних приложений, которые ее читают.

Кто-нибудь знает, почему замена не может заменить значение, журнал установки показывает следующее:

[INFO] com.install4j.runtime.beans.actions.text.ModifyTextFileAction [ID 59]: Execute action
   Property files: [userstrings.txt]
   Property replaceValue: 22357,30,2, "Paramètres_Silent"
   Property searchValue: 22357,30,2, "Paramètres"
   Property escapeForPropertyFile: false
   Property failIfNoReplacement: false
   Property logReplacement: true
   Property rollbackSupported: true
   Backing up C:\Program Files\test\userstrings.txt
   Execute action successful after 102 ms

Вот файл, который я пытаюсь изменить:

https://www.dropbox.com/s/j1bq070eznzby01/userstrings.txt?dl=0

Install4j версия 7.0.9

1 Ответ

1 голос
/ 03 апреля 2019

Это ошибка в install4j, она будет исправлена ​​в 7.0.11, пожалуйста, свяжитесь с support@ej-technologies.com, чтобы получить сборку, в которой она уже исправлена.

Кстати, правильное значение длясвойство "Кодировка" для вашего файла - "Cp1252".

...