> I (finally) understand your intentions.

Glad, I finally could explain it sufficiently ;-)


> Question is: does everyone that uses the exec task (or any 
> other task deriving from ExternalProgramBase) for launching 
> managed applications want (to force) the managed app to run 
> on the CLR matching the current target framework ?

You could make it optional by introducing a "force='true'|'false'" on the exec 
task. 

I think it would be a great help and is much more intuitive. Although pretty 
much clear afterwards, I've been suprised (and I've been not the only one) when 
I first detected that my tests executed on a different clrversion than they 
have just been built for.

cheers,
Erich

> -----Original Message-----
> From: Gert Driesen [mailto:[EMAIL PROTECTED] 
> Sent: Friday, May 04, 2007 12:48 PM
> To: Erich Eichinger; SPEAR, Adrian, GBM; Bob Archer; 
> nant-users@lists.sourceforge.net
> Subject: Re: [NAnt-users] NUnit NAnt task roadmap
> 
> Hi Erich,
> 
> 1) I know about the COMPLUS_VERSION "trick", but instead I 
> was planning on including versions of NUnit that have been 
> built specifically for each support target framework.
> 
> We already do this right now for NUnit, but we're just not 
> including nunit-console yet.
> 
> That way you don't need this "trick", and you have a version 
> of NUnit that really matches the current target framework; 
> meaning it can also uses specific constructs / API's of the 
> current target framework.
> 
> 2) Nope, we don't need this because we have versions of NUnit 
> built specifically for the supported target frameworks.
> 
> That being said, the COMPLUS_VERSION trick might be useful 
> for other managed applications that are executed using the 
> exec task (and for which there's no specific version 
> targeting the current framework version).
> 
> I'll also consider adding a arguments or runtimearguments 
> node to the framework node in the NAnt application configuration file.
> 
> Question is: does everyone that uses the exec task (or any 
> other task deriving from ExternalProgramBase) for launching 
> managed applications want (to force) the managed app to run 
> on the CLR matching the current target framework ?
> 
> I (finally) understand your intentions. I shouldn't do 
> anything NOT-workrelated until I'm fully awake :-)
> 
> Gert
> 
> ----- Original Message -----
> From: "Erich Eichinger" <[EMAIL PROTECTED]>
> To: "Gert Driesen" <[EMAIL PROTECTED]>; "SPEAR, Adrian, GBM" 
> <[EMAIL PROTECTED]>; "Bob Archer" <[EMAIL PROTECTED]>; 
> <nant-users@lists.sourceforge.net>
> Sent: Friday, May 04, 2007 11:31 AM
> Subject: RE: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> No prob ;-)
> 
> While looking for an easy solution to launch the 
> nunit-console.exe using the right clr runtime, I found that 
> at least on windows (unfort. I don't have a linux box) one 
> needs the following
> 
> 1) using MS CLR:  Set COMPLUS_VERSION environment variable
>   e.g. c:\set COMPLUS_VERSION=v2.0.507272
>         c:\nunit-console.exe <args>
> 
> 2) using Mono: pass --runtime=<clrversion> argument to mono.exe
>    e.g. "mono.exe --runtime=v2.0.50727 nunit-console.exe"
> 
> A dedicated <nunit-console> task is fine, but would basically 
> need the same
> mechanisms: specify the right clr version and launch the executable.
> 
> When doing a nant.settings.currentframework='mono-2.0' I 
> would expect an <exec program='some.exe' managed='true' > to 
> launch some.exe using the Mono 2.0 runtime - which is not the 
> case atm. E.g. on my machine the "DefaultCLRVersion" of mono 
> is set to 1.1.4322 - thus if <exec> launches the process with 
> "mono.exe some.exe" it will execute using the default clr 
> version. Only "mono.exe --runtime=2.0 some.exe" will produce 
> the expected result.
> 
> It is easy to define the enviroment variable in the 
> <nant/frameworks/platform/framework/environment> section of 
> nant.exe.config, which causes the enviroment variable be set 
> automatically by ExternalProgramBase.PrepareProcess(). But it 
> is impossible to define additional arguments to be passed to 
> the runtimeengine (e.g. "mono.exe")
> 
> My suggestion is to introduce a 
> "RuntimeEngineArguments:string" property on class 
> NAnt.Core.FrameworkInfo which allows for specifying 
> additional arguments and in 
> NAnt.Core.Tasks.ExternalProgramBase.PrepareProcess() change 
> the line 425 (in the current nightly) to
> 
>   process.StartInfo.Arguments = 
> string.Format(CultureInfo.InvariantCulture,
> "{0} \"{1}\" {2}",
>        Project.TargetFramework.RuntimeEngineArguments, 
> ProgramFileName, CommandLine);
> 
> 
> Could I put some more light on this now?
> 
> cheers,
> Erich
> 
> 
> ________________________________
> 
> From: Gert Driesen [mailto:[EMAIL PROTECTED]
> Sent: Fri 2007-05-04 10:28
> To: Erich Eichinger; 'SPEAR, Adrian, GBM'; 'Bob Archer'; 
> nant-users@lists.sourceforge.net
> Subject: RE: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> and what would the exec task do with this ? how will this 
> ensure that the 
> correct version of nunit-console is executed ?
> 
> please enlighten me ;-)
> 
> ________________________________
> 
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Erich 
> Eichinger
> Sent: vrijdag 4 mei 2007 10:20
> To: Gert Driesen; SPEAR, Adrian, GBM; Bob Archer; 
> nant-users@lists.sourceforge.net
> Subject: Re: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> Maybe my proposal is misleading:
> 
> the "--runtime==" argument from my example is only passed to the 
> runtimeengine - and only if it is specified in the framework 
> configuration 
> in nant.exe.config.
> 
> Erich
> 
> ________________________________
> 
> From: Gert Driesen [mailto:[EMAIL PROTECTED]
> Sent: Fri 2007-05-04 10:17
> To: Erich Eichinger; 'SPEAR, Adrian, GBM'; 'Bob Archer'; 
> nant-users@lists.sourceforge.net
> Subject: RE: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> Eric,
> 
> Not everyone program you start using <exec> will like the 
> --runtime=.... 
> argument. Configuring it on the framework level would also give the 
> impression that it applies to all tasks.
> 
> I'd still prefer an <nunit-console> task, but if there's no 
> interest in this 
> .... and if there is, feel free to beat me to it ;-)
> 
> Gert
> ________________________________
> 
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of Erich 
> Eichinger
> Sent: vrijdag 4 mei 2007 10:09
> To: Gert Driesen; SPEAR, Adrian, GBM; Bob Archer; 
> nant-users@lists.sourceforge.net
> Subject: Re: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> After playing around a little bit, I found that using <exec> 
> would be a 
> convenient solution. "would" because unfortunately it is not 
> possible to 
> pass arguments to the runtimeengine. Otherwise the solution 
> would be rather 
> easy by configuring the frameworks within nant.exe.config. E.g.:
> 
> [NAnt.exe.config]
> ...
> <framework
>  name="net-2.0"
>  family="net"
>  version="2.0"
>  description="Microsoft .NET Framework 2.0"
>  runtimeengine=""
>  clrversion="2.0.50727"
> >
>   ....
>  <environment>
>   <env name="COMPLUS_VERSION" value="v2.0.50727" />
>  </environment>
>  ....
> </framework>
> 
> <framework
>  name="mono-2.0"
>  family="mono"
>  version="2.0"
>  description="Mono 2.0 Profile"
>  runtimeengine="${runtimeEngine}"
>  runtimeengineargs="--runtime=v2.0.50727"   <-- New Attribute
>  clrversion="2.0.50727"
>  >
> ...
> </framework>
> ...
> 
> Having the frameworks configured like this would cause any 
> exec task to be 
> started within the right runtime engine + version and allows 
> for simply 
> writing
> 
> <target name="test">
>  <exec useruntimeengine="true"
>   workingdir="${build.outputdir}/${nant.settings.currentframework}"
>   program="${nunit.exe}"
>  >
>   <arg value="${project::get-name()}.Tests.dll" />
>  </exec>
> </target>
> 
> to test an assembly against the current 
> ${nant.settings.currentframework}
> 
> cheers,
> Erich
> 
> P.S.:  Of course <exec> can't guarantee the clr version if 
> the executable 
> uses a <startup> section.
> 
> 
> 
> ________________________________
> 
> From: Gert Driesen [mailto:[EMAIL PROTECTED]
> Sent: Thu 2007-05-03 18:32
> To: 'SPEAR, Adrian, GBM'; 'Bob Archer'; Erich Eichinger; 
> nant-users@lists.sourceforge.net
> Subject: RE: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> 
> You're wrong on this. Unless if you're sure that your build 
> file will allow
> you to run your unit tests on Mono or a specific version of 
> the MS CLR ...
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of SPEAR,
> Adrian, GBM
> Sent: donderdag 3 mei 2007 16:03
> To: 'Gert Driesen'; Bob Archer; Erich Eichinger;
> nant-users@lists.sourceforge.net
> Subject: Re: [NAnt-users] NUnit NAnt task roadmap
> 
> To be honest - I don't see the need for a task to wrap 
> nunit-console and the
> like (e.g. ncover.console.exe).
> 
> As Bob states - just use an exec task to invoke the console 
> application.
> 
> I have created a simple .build file which depending upon 
> parameters supplied
> will use exec to invoke typemock and ncover with the correct 
> params to also
> call nunit for a combined unit test / code coverage profile run - this
> script also adapts the command line whether typemock is 
> linked or not....
> 
> This works well for me and I only have to supply directories for
> nunit/ncover and typemock if I am not using PATH.
> 
> <project name="integration.codecoverage" default="codecoverage">
> 
>         <!-- required property values -->
>         <property 
> name="integration.codecoverage.workingdirectory" value=""
> overwrite="false"/>
>         <!-- required property values -->
> 
>         <!-- overridable property values -->
>         <property name="integration.codecoverage.typemock.path"
> value="C:\Program Files\TypeMock\TypeMock.Net\" overwrite="false"/>
>         <property name="integration.codecoverage.typemock.console"
> value="tmockrunner.exe" overwrite="false"/>
>         <property 
> name="integration.codecoverage.typemock.profilername"
> value="NCover1.5.7" />
>         <property name="integration.codecoverage.typemock.islinked"
> value="true" overwrite="false"/>
> 
>         <property name="integration.codecoverage.ncover.path"
> value="C:\Program Files\NCover\" overwrite="false"/>
>         <property name="integration.codecoverage.ncover.console"
> value="ncover.console.exe" overwrite="false"/>
>         <property 
> name="integration.codecoverage.ncover.console.assemblies"
> value="SCLtd.NAnt.Extensions.Tasks" overwrite="false"/>
> 
>         <property name="integration.codecoverage.nunitproject"
> value="SCLtd.NAnt.Extensions" overwrite="false"/>
>         <property name="integration.codecoverage.nunitconfig" 
> value="Debug"
> overwrite="false"/>
>         <property name="integration.codecoverage.nunit.path"
> value="C:\Program Files\Nunit 2.2.9\bin\" overwrite="false"/>
>         <property name="integration.codecoverage.nunit.console"
> value="nunit-console.exe" overwrite="false"/>
> 
>         <!-- overridable property values -->
> 
>         <!-- explicit property values -->
>         <!-- explicit property values -->
> 
>         <target name="codecoverage" 
> depends="integration.codecoverage" />
> 
>         <target name="integration.codecoverage" description="">
> 
>                 <echo
> message="integration.codecoverage.typemock.islinked=${integrat
ion.codecovera
> ge.typemock.islinked}" />
> 
>                 <if
> test="${property::get-value('integration.codecoverage.typemock
.islinked') ==
> 'true'}">
>                         <echo
> message="workingdir=${integration.codecoverage.workingdirectory}" />
>                         <echo
> message="program=${integration.codecoverage.ncover.path}${inte
gration.codeco
> verage.ncover.console}" />
>                         <echo message="commandline=//w
> ${integration.codecoverage.workingdirectory} //x
> ${integration.codecoverage.nunitproject}.NCoverResults.xml
> ${integration.codecoverage.nunit.path}${integration.codecovera
> ge.nunit.conso
> le} ${integration.codecoverage.nunitproject}.nunit
> /config=${integration.codecoverage.nunitconfig}
> /xml=${integration.codecoverage.nunitproject}.NUnitResults.xml  //a
> ${integration.codecoverage.ncover.console.assemblies}" />
> 
>                         <exec
> 
> workingdir="${integration.codecoverage.workingdirectory}"
> 
> program="${integration.codecoverage.ncover.path}${integration.
> codecoverage.n
> cover.console}"
>                                 commandline="//w
> ${integration.codecoverage.workingdirectory} //x
> ${integration.codecoverage.nunitproject}.NCoverResults.xml
> ${integration.codecoverage.nunit.path}${integration.codecovera
> ge.nunit.conso
> le} ${integration.codecoverage.nunitproject}.nunit
> /config=${integration.codecoverage.nunitconfig}
> /xml=${integration.codecoverage.nunitproject}.NUnitResults.xml  //a
> ${integration.codecoverage.ncover.console.assemblies}"
>                         />
>                 </if>
>                 <if
> test="${property::get-value('integration.codecoverage.typemock
.islinked') ==
> 'false'}">
>                         <echo
> message="workingdir=${integration.codecoverage.workingdirectory}" />
>                         <echo
> message="program=${integration.codecoverage.typemock.path}${in
tegration.code
> coverage.typemock.console}" />
>                         <echo message="commandline=-link
> ${integration.codecoverage.typemock.profilername}
> ${integration.codecoverage.ncover.path}${integration.codecover
> age.ncover.con
> sole} //w ${integration.codecoverage.workingdirectory} //x
> ${integration.codecoverage.nunitproject}.NCoverResults.xml
> ${integration.codecoverage.nunit.path}${integration.codecovera
> ge.nunit.conso
> le} ${integration.codecoverage.nunitproject}.nunit
> /config=${integration.codecoverage.nunitconfig}
> /xml=${integration.codecoverage.nunitproject}.NUnitResults.xml  //a
> ${integration.codecoverage.ncover.console.assemblies}" />
> 
>                         <exec
> 
> workingdir="${integration.codecoverage.workingdirectory}"
> 
> program="${integration.codecoverage.typemock.path}${integratio
> n.codecoverage
> ..typemock.console}"
>                                 commandline="-link
> ${integration.codecoverage.typemock.profilername}
> ${integration.codecoverage.ncover.path}${integration.codecover
> age.ncover.con
> sole} //w ${integration.codecoverage.workingdirectory} //x
> ${integration.codecoverage.nunitproject}.NCoverResults.xml
> ${integration.codecoverage.nunit.path}${integration.codecovera
> ge.nunit.conso
> le} ${integration.codecoverage.nunitproject}.nunit
> /config=${integration.codecoverage.nunitconfig}
> /xml=${integration.codecoverage.nunitproject}.NUnitResults.xml  //a
> ${integration.codecoverage.ncover.console.assemblies}"
>                         />
>                 </if>
> 
>         </target>
> 
> </project>
> 
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf 
> Of Gert Driesen
> Sent: 03 May 2007 14:52
> To: Bob Archer; Erich Eichinger; nant-users@lists.sourceforge.net
> Subject: Re: [NAnt-users] NUnit NAnt task roadmap
> 
> Hi Bob,
> 
> I've been planning on adding an nunit-console task would be 
> basically just
> be wrapper around nunit-console.exe.
> 
> The only advantage would be that the nunit-console task can 
> automatically
> invoke the nunit-console assembly and set the environment for 
> the current
> target framework.
> 
> Would something like this be useful ?
> 
> Gert
> 
> ----- Original Message -----
> From: "Bob Archer" <[EMAIL PROTECTED]>
> To: "Erich Eichinger" <[EMAIL PROTECTED]>;
> <nant-users@lists.sourceforge.net>
> Sent: Thursday, May 03, 2007 3:22 PM
> Subject: Re: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> Nothing against Nant. But, this is the reason a lot of people 
> recommend
> running NUnit with the exec task.
> 
> 
> 
> ________________________________
> 
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Erich
> Eichinger
> Sent: Thursday, May 03, 2007 1:56 AM
> To: nant-users@lists.sourceforge.net
> Subject: [NAnt-users] NUnit NAnt task roadmap
> 
> 
> 
> Hi,
> 
> Since NUnit 2.4 is already out, I'd like to know if there are 
> any concrete
> plans to upgrade/extend the nunit task to the new version. As 
> far as I could
> see, the nunit task is still compiled against 2.2.8.
> 
> cheers,
> Erich
> 
> 
> 
> 
> 
> 
> --------------------------------------------------------------
> --------------
> ----
> 
> 
> > 
> ----------------------------------------------------------------------
> > --- This SF.net email is sponsored by DB2 Express Download 
> DB2 Express
> > C - the FREE version of DB2 express and take control of your XML. No
> > limits. Just data. Click to get it now.
> > http://sourceforge.net/powerbar/db2/
> 
> 
> --------------------------------------------------------------
> --------------
> ----
> 
> 
> > _______________________________________________
> > NAnt-users mailing list
> > NAnt-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/nant-users
> >
> 
> 
> 
> --------------------------------------------------------------
> -----------
> This SF.net email is sponsored by DB2 Express Download DB2 
> Express C - the
> FREE version of DB2 express and take control of your XML. No 
> limits. Just
> data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> NAnt-users mailing list
> NAnt-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nant-users
> 
> **************************************************************
> **************
> *******
> The Royal Bank of Scotland plc. Registered in Scotland No 
> 90312. Registered
> Office: 36 St Andrew Square, Edinburgh EH2 2YB.
> Authorised and regulated by the Financial Services Authority
> 
> This e-mail message is confidential and for use by the 
> addressee only. If
> the message is received by anyone other than the addressee, 
> please return
> the message to the sender by replying to it and then delete 
> the message from
> your computer. Internet e-mails are not necessarily secure. 
> The Royal Bank
> of Scotland plc does not accept responsibility for changes 
> made to this
> message after it was sent.
> 
> Whilst all reasonable care has been taken to avoid the transmission of
> viruses, it is the responsibility of the recipient to ensure 
> that the onward
> transmission, opening or use of this message and any 
> attachments will not
> adversely affect its systems or data. No responsibility is 
> accepted by The
> Royal Bank of Scotland plc in this regard and the recipient 
> should carry out
> such virus and other checks as it considers appropriate.
> Visit our websites at:
> www.rbs.com
> www.rbsgc.com
> www.rbsmarkets.com
> **************************************************************
> **************
> *******
> 
> --------------------------------------------------------------
> -----------
> This SF.net email is sponsored by DB2 Express Download DB2 
> Express C - the
> FREE version of DB2 express and take control of your XML. No 
> limits. Just
> data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> NAnt-users mailing list
> NAnt-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nant-users
> 
> 
> 
> 
> 
> 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
NAnt-users mailing list
NAnt-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nant-users

Reply via email to