<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>iamstuffed.com &#187; C#</title>
	<atom:link href="http://iamstuffed.com/blog/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://iamstuffed.com/blog</link>
	<description></description>
	<lastBuildDate>Fri, 16 Apr 2010 01:36:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Compiling Firebird 2.1.0 for OSX using Mono 1.2.6</title>
		<link>http://iamstuffed.com/blog/2008/02/22/compiling-firebird-210-for-osx-using-mono-126/</link>
		<comments>http://iamstuffed.com/blog/2008/02/22/compiling-firebird-210-for-osx-using-mono-126/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 03:24:01 +0000</pubDate>
		<dc:creator>iamstuffed</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Firebird]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[OSX]]></category>

		<guid isPermaLink="false">http://iamstuffed.com/blog/2008/02/22/compiling-firebird-210-for-osx-using-mono-126/</guid>
		<description><![CDATA[I&#8217;m thinking of doing a project with C#, and I&#8217;d like to use an embeddable database, so I browsed the interweb and found this interesting project: http://www.firebirdsql.org/.  I think this project is one reason Firefox had to change it&#8217;s name a second time.
The source distribution for Firebird 2.1.0 has a solution file for building [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m thinking of doing a project with C#, and I&#8217;d like to use an embeddable database, so I browsed the interweb and found this interesting project: <a href="http://www.firebirdsql.org/">http://www.firebirdsql.org/</a>.  I think this project is one reason Firefox had to change it&#8217;s name a second time.</p>
<p>The source distribution for Firebird 2.1.0 has a solution file for building on Windows, and a couple makefiles to build at the command line.  The only makefile that might have worked, NETProvider/build/linux/makefile contains odd errors that do not allow me to compile the sources successfully.  This is the first error:<br />
<code><br />
make<br />
makefile:40: *** multiple target patterns.  Stop.<br />
</code></p>
<p>First, I&#8217;m not sure why it&#8217;s in there, but it contains a start and end div tag.  I&#8217;m pretty sure that&#8217;s not allowed in a makefile, so you can just remove the start and end tag.  Inside the makefile, there are several make rules that span multiple lines, and they are not &#8220;continued&#8221; properly.  The simplest fix is to remove the newlines for each of the rules that span more than one line.  For example:<br />
<code><br />
COMMON_RESOURCES =<br />
-resource:${RESOURCES}/isc_error_msg.resources...<br />
</code><br />
Needs to be changed to:<br />
<code><br />
COMMON_RESOURCES = -resource:${RESOURCES}/isc_error_msg.resources...<br />
</code><br />
This has to be repeated for SCHEMA_RESOURCES, and the newlines need to be removed from PROVIDER_FLAGS, PROVIDER_TESTS_FLAGS, the compile line of the UnitTests.dll rule, and the copy command that spans two lines.</p>
<p>Next, move the all: rule down to the targets section.  I&#8217;m not sure why it&#8217;s so high in the makefile.</p>
<p>If you run make at this point, you&#8217;ll receive an error:<br />
<code><br />
error CS1566: Error reading resource file `../../source/FirebirdSql/FirebirdSql/Data/Schema/FbMetaData.xml'<br />
</code></p>
<p>The SCHEMA_RESOURCES variable has an extra FirebirdSql in the path to FbMetaData.xml.  You need to remove it.</p>
<p><code><br />
error CS2001: Source file `../../source/FirebirdSql/Data/UnitTest/*.cs' could not be found<br />
</code><br />
This error exists because that path should point to UnitTest<em><strong>s</strong></em>.  Change the PROVIDER_TESTS_SOURCES variable.</p>
<p>Since i don&#8217;t have nunit.framework.dll, I had to compile it and install it.  I&#8217;m sure you can figure it out with google.  I loaded the nunit_VS2005.sln file into Monodevelop and only compiled the nunit.framework.dll assembly, and installed it using <code>gacutil -i nunit.framework.dll</code>.</p>
<p>Next, <code>-reference:System.Transactions.dll</code> needs to be added to the PROVIDER_TESTS_FLAGS variable.  Also, <code>-reference:System.Configuration.dll</code> needs to be added to the same variable to fix the <code>error CS0103: The name `ConfigurationManager' does not exist in the current context</code> messages.</p>
<p>After running make again, I got <code>error CS3002: Return type of `FirebirdSql....BuildConnectionStringBuilder()' is not CLS-compliant</code> and two other similar messages.  Because I&#8217;m not a C# expert, I just googled it, and placed <code>[CLSCompliantAttribute(false)]</code> above all the offending methods in the BaseTests.cs file.  You&#8217;ll also have to do the same for the offending method in FbConnectionTest.cs.  I&#8217;m not worried if it&#8217;s compliant or not, since I just want to use it with C#.</p>
<p>After all this, it finally complies!  Unfortunately, when I try to install it using the gacutil, it refuses:<br />
<code>Failure adding assembly to the cache: Attempt to install an assembly without a strong name.</code></p>
<p>I added <code>-keyfile:FirebirdSql.Data.FirebirdClient.snk</code> to the end of the FirebirdClient.dll compile command, and everything compiled and installed fine.  I haven&#8217;t tested the library to tell if it works, but that&#8217;ll be another post.</p>
<p><a href="javascript:void(0)"> 			Modified makefile</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iamstuffed.com/blog/2008/02/22/compiling-firebird-210-for-osx-using-mono-126/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
