[Mono-list] Visual Studio and non-Windows deployment

Nate Chadwick nate.chadwick at gmail.com
Wed May 10 12:05:09 EDT 2006


I use VS 2003 to target mono for a couple apps right now.   My setup is
Windows Xp 32-bit, VS2003 with vsprj2make, nant (recent nightly), and mono
windows installer 1.1.5 (this installs the libs).  I was using VS 2005 when
I started, but there was too much to do to get things working nicely, so I
rolled back to VS 2003.

For me I am developing mainly C# ASP.NET apps so this may not work as nicely
with Windows Forms apps, not sure.  

I use an nant build tactic where I exec out to nant using an quick and dirty
add-in in visual studio 2003, and pass nant.exe the necessary params to run
the build script with the target version of mono.  Then when done I check
the source code into subversion (using tortoise svn) and then ssh into my
test server and do an svn up to get the changes and run nant on the server
and deploy from there.    I also use vsprj2make to test the project with XSP
and a the local IIS to do any single step style debugging and to test on IIS
while developing in VS. 
 
Here is a snip from the hacked together add-in

 <snip>
    if(commandName == "VSNAntRunner.Connect.VSNAntRunner")
    {
     string args = String.Format("/output /dir:{0} mono {1}NAnt.exe
{2}",GetActiveProjectPath(),Environment.GetEnvironmentVariable("NANT_HOME")
+ "\\bin\\","-t:mono-1.0");
 
     applicationObject.ExecuteCommand("Tools.Shell",args);

....

   private string GetActiveProjectPath()
   {
	object[] projects =
(object[])applicationObject.ActiveSolutionProjects;
	Project project;
	string buildDir=".";

	if(projects.Length>0){
		project = (Project)projects[0];
		buildDir =
(string)project.Properties.Item("FullPath").Value;
	}
       return buildDir;
    }

 </snip>

The tricky part has been mainly keeping the build script synchronized with
the solution and references (I ended up adding a lib directory excluded from
the solution to each project and reference dlls that way).   VS doesn't
layout its web solutions to be built via anything but VS so you have to
fiddle with it to get it working right.  

This has been working pretty successfully for me on a couple asp.net
projects, web services and web forms style..  I like the source control
approach for platform synchronization and I like the simple cross platform
build scripting that nant provides.  I have yet to setup a continuous
integration server on the linux side for automating builds and deployments
of engineering web apps to apache, but with this setup I think that should
be fairly simple.  
 
Hope this helps,

-nate
 

________________________________

From: mono-list-bounces at lists.ximian.com
[mailto:mono-list-bounces at lists.ximian.com] On Behalf Of Glen Farrell
Sent: Tuesday, May 09, 2006 9:09 PM
To: mono-list at lists.ximian.com
Subject: [Mono-list] Visual Studio and non-Windows deployment


Hi, I'm just looking into Mono, and trying to get a handle on exactly what
is there, and what I need to do. First of all, I gather there's currently no
Mono IDE for a Windows environment? I did glance at the MonoDevelop page,
but it said it's only for Linux and Mac - is there any plans/timeline for
this to be extended to Windows? Or is there another IDE I'm missing?
 
Anyway, without a Mono IDE I guess I'm looking at using Visual Studio. (I
realize I could use gtk#/Glade - but I'd rather have a full blown IDE, even
if it means a bit more hassle when it comes to deploying). Now, I read the
FAQ, and it said that I could still code in Visual Studio, and have my
program run using Mono (as long as I avoided anything specific to .Net 2.0).
But I'm unclear on how that applies to multi-platform deployment ... what
would be involved in getting my program (writting in Visual Studio under
Windows) running on a Mac or Linux box?
 
And one more question - at the very start of the FAQ, it lists a bunch of
different libraries. The first few have links, but most don't ... where do I
get these other libraries from? (like Mono.Data, Mono.XML ...)
 
Thanks,
Glen.



More information about the Mono-list mailing list