c#, VS 2005. resx not updated ?

S

Steve Howard

I upgraded some code from VS 2003 to VS 2005. The conversion tool appears to
convert the files fine, but I get an error with the resx file when I try to
compile

"ResX input is not valid. Cannot find valid "resheader" tags for the ResX
reader and writer type names."


I thought this might fix it:-

http://msdn.microsoft.com/library/d...artdeviceextensionsbetareleaseofapril2002.asp


But no new resx file was generated.


Recognising that the XML format of the resx file changed in VS2005, I took
an existing 2005 resx file and tried to rewrite it with the data from the
original 2003 version. This didn't appear to work, as it generated errors.

Admittedly I could have introduced errors into the resx file as I rewrote
it, but before I try a second rewrite, is there an accepted method for
upgrading resx files that I have overlooked?

TIA


Steve
 
S

Steve Howard

So you saying are that you have a VS2003 project that includes as embedded
resource some RESX files (and compiles with no errors).

It is a sample file that was provided with an SDK for a software tool I am
trying to use (Fonix DecTalk, so I can do Text to Speech on PDA). The file
is C#, and two source files are provided - DECtalkSample.cs and
DECtalkSample.resx. I presume they compile fine with 2003 but cannot test
this.
You then take the project through the VS2005 RTM upgrade wizard and the
resx files have not been upgraded correctly?

I used

New > Make project from existing code

Then get the error with RESX file.
As far as I know that should work:
http://www.danielmoth.com/Blog/2005/08/resx-compatibility-for-smart-device.html

Can you post the original resx file and tell us if this is in VB or C#?


See below. The resx file appears not to get upgraded at all. The XML still
says "Microsoft ResX Schema version 1.3", when I see newer resx files that I
have been generating say "Microsoft ResX Schema Version 2.0".

Thanks Daniel!


Steve



================ Resx file ...

<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

Version 1.3

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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader,
System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter,
System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color,
System.Drawing">Blue</data>
<data name="Bitmap1"
mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing"
mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the
..NET Framework object]
</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 forserialized 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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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"
msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string"
msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string"
msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Windows.Forms.Design.CFResXResourceReader,
System.CF.Design, Version=7.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</resheader>
<resheader name="writer">
<value>System.Windows.Forms.Design.CFResXResourceWriter,
System.CF.Design, Version=7.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</resheader>
<data name="mainMenu1.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="mainMenu1.Location" type="System.Drawing.Point,
System.CF.Drawing, Version=7.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</data>
<data name="mainMenu1.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="speakButton.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="speakButton.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="speakButton.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceListBox.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceListBox.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="voiceListBox.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceLabel.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="voiceLabel.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceLabel.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="TextLabel.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="TextLabel.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="TextLabel.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="textTextBox.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="textTextBox.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="textTextBox.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo,
mscorlib, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.CF.Drawing,
Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.Name">
<value>DECtalkSampleForm</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>
 
S

Steve Howard

I have a working (mostly) solution.

After an extended conversation with tech support for DecTalk, we used a
diferent route to upgrade the project to 2005. We are still ironing out
problems, but I was able to delete and disregard the resx file with no
obvious harmfull effects.



Steve
 
D

Daniel Moth

Add your resx file to a VS2003 project. Upgrade the project and then take
the resulting upgraded resx file and add it to your other VS2005 project
(from exisitng code)

Cheers
Daniel
--
http://www.danielmoth.com/Blog/

Steve Howard said:
So you saying are that you have a VS2003 project that includes as
embedded resource some RESX files (and compiles with no errors).

It is a sample file that was provided with an SDK for a software tool I am
trying to use (Fonix DecTalk, so I can do Text to Speech on PDA). The file
is C#, and two source files are provided - DECtalkSample.cs and
DECtalkSample.resx. I presume they compile fine with 2003 but cannot test
this.
You then take the project through the VS2005 RTM upgrade wizard and the
resx files have not been upgraded correctly?

I used

New > Make project from existing code

Then get the error with RESX file.
As far as I know that should work:
http://www.danielmoth.com/Blog/2005/08/resx-compatibility-for-smart-device.html

Can you post the original resx file and tell us if this is in VB or C#?


See below. The resx file appears not to get upgraded at all. The XML still
says "Microsoft ResX Schema version 1.3", when I see newer resx files that
I have been generating say "Microsoft ResX Schema Version 2.0".

Thanks Daniel!


Steve



================ Resx file ...

<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema

Version 1.3

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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader,
System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter,
System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color,
System.Drawing">Blue</data>
<data name="Bitmap1"
mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing"
mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the
.NET Framework object]
</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 forserialized 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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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"
msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string"
msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string"
msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Windows.Forms.Design.CFResXResourceReader,
System.CF.Design, Version=7.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</resheader>
<resheader name="writer">
<value>System.Windows.Forms.Design.CFResXResourceWriter,
System.CF.Design, Version=7.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a</value>
</resheader>
<data name="mainMenu1.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="mainMenu1.Location" type="System.Drawing.Point,
System.CF.Drawing, Version=7.0.5000.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</data>
<data name="mainMenu1.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="speakButton.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="speakButton.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="speakButton.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="menuItem1.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceListBox.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceListBox.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="voiceListBox.Modifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceLabel.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="voiceLabel.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="voiceLabel.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="TextLabel.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="TextLabel.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="TextLabel.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="textTextBox.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="textTextBox.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="textTextBox.Modifiers" type="System.CodeDom.MemberAttributes,
System, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo,
mscorlib, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.CF.Drawing,
Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.Name">
<value>DECtalkSampleForm</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers"
type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>
 
S

Steve Howard

Add your resx file to a VS2003 project. Upgrade the project and then take
the resulting upgraded resx file and add it to your other VS2005 project
(from exisitng code)


Sounds like a plan. When you say it, it's kinda obvious but silly me never
thought of that.

I finally got all the issues sorted out. Ultimately what I did, with tech
support guidance, goes something like this

New blank C# device project
Add existing cs code file
Delete resx file
Add references to System.Data and a couple of others

I think that was all that was needed to get rid of the resx error.
Retrospectively I think simply deleting the resx file as I did earlier was
enough to fix the problem I posted here about, but right now I am happy that
the code is working and want to move forward.

There were some other issues that are not relevant to this thread that I
needed tech support for the TTS stuff to help me with. Turns out it helped
them too as they needed to learn a little more about VS 2005 ;-)


Thanks again Chris.


Steve
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top