2011-01-12 12 views
17

Mam więc aplikację C#. Ma pewne zasoby, które są do niego podłączone i zostały osadzone podczas kompilacji. Aplikacja kompiluje się i działa doskonale w oknach. podczas testowania kompatybilności z mono mówi, że wszystko jest w porządku. Gdy próbuję skompilować daje jeden błąd pliku XML nMono resources.resx problem podczas przenoszenia (dziwny błąd w resx pliku xml na "</data>")

/home/rupert/Desktop/CloudObserverLite(4)/CloudObserverLite/Properties/Resources.resx: Error: Error: Invalid ResX input. 
Position: Line 123, Column 5. 
Inner exception: value 
(CloudObserverLite) 

A jeśli przyjrzymy RESX xml

...<resheader name="writer"> 

    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </resheader> 

    <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

    <data name="framework_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>../assets/framework_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="index_html" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>../assets/index.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value> 

    </data>... 

Linia 123 będzie pierwszym </data> tag.

Oto wszystko RESX plik jeśli może dać nic więcej info

<?xml version="1.0" encoding="utf-8"?> 

<root> 

    <!-- 

    Microsoft ResX Schema 



    Version 2.0 



    The primary goals of this format is to allow a simple XML format 

    that is mostly human readable. The generation and parsing of the 

    various data types are done through the TypeConverter classes 

    associated with the data types. 



    Example: 



    ... ado.net/XML headers & schema ... 

    <resheader name="resmimetype">text/microsoft-resx</resheader> 

    <resheader name="version">2.0</resheader> 

    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> 

    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> 

    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> 

    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> 

    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> 

     <value>[base64 mime encoded serialized .NET Framework object]</value> 

    </data> 

    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> 

     <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> 

     <comment>This is a comment</comment> 

    </data> 



    There are any number of "resheader" rows that contain simple 

    name/value pairs. 



    Each data row contains a name, and value. The row also contains a 

    type or mimetype. Type corresponds to a .NET class that support 

    text/value conversion through the TypeConverter architecture. 

    Classes that don't support this are serialized and stored with the 

    mimetype set. 



    The mimetype is used for serialized objects, and tells the 

    ResXResourceReader how to depersist the object. This is currently not 

    extensible. For a given mimetype the value must be set accordingly: 



    Note - application/x-microsoft.net.object.binary.base64 is the format 

    that the ResXResourceWriter will generate, however the reader can 

    read any of the formats listed below. 



    mimetype: application/x-microsoft.net.object.binary.base64 

    value : The object must be serialized with 

      : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 

      : and then encoded with base64 encoding. 



    mimetype: application/x-microsoft.net.object.soap.base64 

    value : The object must be serialized with 

      : System.Runtime.Serialization.Formatters.Soap.SoapFormatter 

      : and then encoded with base64 encoding. 



    mimetype: application/x-microsoft.net.object.bytearray.base64 

    value : The object must be serialized into a byte array 

      : using a System.ComponentModel.TypeConverter 

      : and then encoded with base64 encoding. 

    --> 

    <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> 

    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> 

    <xsd:element name="root" msdata:IsDataSet="true"> 

     <xsd:complexType> 

     <xsd:choice maxOccurs="unbounded"> 

      <xsd:element name="metadata"> 

      <xsd:complexType> 

       <xsd:sequence> 

       <xsd:element name="value" type="xsd:string" minOccurs="0" /> 

       </xsd:sequence> 

       <xsd:attribute name="name" use="required" type="xsd:string" /> 

       <xsd:attribute name="type" type="xsd:string" /> 

       <xsd:attribute name="mimetype" type="xsd:string" /> 

       <xsd:attribute ref="xml:space" /> 

      </xsd:complexType> 

      </xsd:element> 

      <xsd:element name="assembly"> 

      <xsd:complexType> 

       <xsd:attribute name="alias" type="xsd:string" /> 

       <xsd:attribute name="name" type="xsd:string" /> 

      </xsd:complexType> 

      </xsd:element> 

      <xsd:element name="data"> 

      <xsd:complexType> 

       <xsd:sequence> 

       <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> 

       <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> 

       </xsd:sequence> 

       <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> 

       <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> 

       <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> 

       <xsd:attribute ref="xml:space" /> 

      </xsd:complexType> 

      </xsd:element> 

      <xsd:element name="resheader"> 

      <xsd:complexType> 

       <xsd:sequence> 

       <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> 

       </xsd:sequence> 

       <xsd:attribute name="name" type="xsd:string" use="required" /> 

      </xsd:complexType> 

      </xsd:element> 

     </xsd:choice> 

     </xsd:complexType> 

    </xsd:element> 

    </xsd:schema> 

    <resheader name="resmimetype"> 

    <value>text/microsoft-resx</value> 

    </resheader> 

    <resheader name="version"> 

    <value>2.0</value> 

    </resheader> 

    <resheader name="reader"> 

    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </resheader> 

    <resheader name="writer"> 

    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </resheader> 

    <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

    <data name="framework_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>../assets/framework_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="index_html" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>../assets/index.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value> 

    </data> 

    <data name="osmf_1_0_0_16316_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\osmf_1.0.0.16316.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="playerProductInstall_swf" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\playerproductinstall.swf;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="player_html" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\player.html;System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1251</value> 

    </data> 

    <data name="rpc_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\rpc_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="sparkskins_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\sparkskins_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="spark_4_5_0_17689_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\spark_4.5.0.17689.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="swfobject_js" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\swfobject.js;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="textLayout_2_0_0_139_swz" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\textlayout_2.0.0.139.swz;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="AC_OETags_js" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\ac_oetags.js;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="history_historyFrame_html" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\history_historyframe.html;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="history_history_css" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\history_history.css;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="history_history_js" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\history_history.js;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

    <data name="player_swf" type="System.Resources.ResXFileRef, System.Windows.Forms"> 

    <value>..\assets\player.swf;System.Byte[], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> 

    </data> 

</root> 

Jeśli szukaliśmy w strukturze projektu chcielibyśmy zobaczyć: alt text

mi przykro nowy mono - plase pomoc .

+0

Czy naprawdę masz komentarz w tym węźle? A może to było coś, z czym eksperymentowałeś? framework_4.5.0.17689.swz; System.Byte [], .... – jpobst

+0

Przepraszam - to było experementation - z nim lub bez niego nie działa = (to samo error: – Rella

+1

Znalazłem ten sam problem podczas kompilacji GitExtensions na linux/mono. –

Odpowiedz

1

Przejdź do Edycja -> Preferencje -> Projekty -> Utwórz i zaznacz opcję "Kompiluj projekty za pomocą MSBuild/XBuild".

+0

nie pomogło w mojej sytuacji – user1709408

0

Możliwe jest również, aby osadzić zasoby ręcznie z DMC:

dmcs -r:<libraries go here> -resource:<resource1> -resource:<resource2> -resource:<etc> *.cs -OUT:Program.exe 

Jest to dość uciążliwe, zwykle napisać długi ciąg kompilacji w edytorze tekstowym (wezwanie compilestring.txt to powiedzieć ..), oraz oni robią coś takiego:

comp=$(echo | cat compilestring.txt) 

a następnie wpisz $ comp, aby skompilować mój projekt.

Mam nadzieję, że to pomoże! (To jest to, do czego musiałem się odwołać, po tym, jak cierpiałem podobne problemy z plikami .resx w linux i mono)

-1

Miałem ten problem, ale po otwarciu pliku stwórz niewielką zmianę (jak dodanie nowej pustej linii lub puste miejsce) i zapisać problemy rozwiązane. to jest z plikiem unicode. mono mają ten problem z rozwiązaniami, które stworzyło okno.

0

Mój problem został rozwiązany poprzez zastąpienie wszystkich \ z/we wszystkich ścieżkach.

Powiązane problemy