Menu

#1164 Invalid culture causes Light to crash

v3.0
closed
light (353)
2012-09-15
2008-04-15
No

When excuting light.exe, the error message "Culture 'en' is a neutral culture. It cannot be used in formatting and parsing and therefore cannot be set as the thread's current culture." is returned.

This is caused by a call to String.Format() where CultureInfo.CurrentUICulture is sent as the IFormatProvider.

However, CultureInfo.CurrentUICulture can contain a neutral culture, which will cause an exception if used for numeric formatting.

I think the correct call would be
String.Format(CultureInfo.CurrentCulture, ...), since CultureInfo.CurrentCulture cannot contain a neutral culture.

Searching through the source code I actually find a lot of places where CultureInfo.CurrentUICulture is used. They could all need a review.

Discussion

  • Jeremiah Devine

    Jeremiah Devine - 2008-04-15

    Logged In: YES
    user_id=98139
    Originator: NO

    This error also occurs using light. I was able to produce this problem by using heat to create a package that contained the Java JRE 1.6_04 and then when using it with candle (after a tiny bit of manipulation for package name and path names via sed script) I received the en is a neutral culture error and candle crashed as well. This only occurs when using Wix 3.0.4014. In order to work around this I have downgraded to 3.0.3907 and do not get the crashes occuring while running the same sequence of events (heat --> sed script --> candle --> light).

    Hope this helps.

     
  • Mikael Borjesson

    Logged In: YES
    user_id=2063687
    Originator: YES

    It is correct that this does not occur in 3.0.3907. In that version CultureInfo.InvariantCulture was used as the IFormatProvider in the call to String.Format(). The exception will occur in ConsoleMessageHandler in WConsole when executing GenerateMessageString(), but I see the same change has been done in more places.

     
  • Thomas

    Thomas - 2008-04-22

    Logged In: YES
    user_id=1164267
    Originator: NO

    hi!

    i have installed the latest version today
    (http://wix.sourceforge.net/releases/3.0.4014.0/wix3.msi)
    on Visual Studio 2008 (english, on vista 64 en)

    When i create a default project, or when i compile my own installer file,
    i get always the error


    Error 1 Culture 'en' is a neutral culture. It cannot be used in formatting and parsing and therefore cannot be set as the thread's current culture. light.exe

    for me, thats a piority 1 bug, because i can't compile any files!

     
  • Anonymous

    Anonymous - 2008-04-22

    Logged In: YES
    user_id=1521752
    Originator: NO

    I have also seen this bug with candle, see 1948860. It is probably just shared code but I thought I'd mention it.

     
  • SourceForge Robot

    This Tracker item was closed automatically by the system. It was
    previously set to a Pending status, and the original submitter
    did not respond within 15 days (the time period specified by
    the administrator of this Tracker).

     
MongoDB Logo MongoDB