Erich or Bob, can you verify whether COMPLUS_VERSION overrides the runtime 
version set in the configuration file of an app ?

I guess it will, and this is one of the reasons why we perhaps shouldn't 
modify the ExternalProgramBase to set this environment variable.

However, I like the idea of making this optional behaviour. How about 
changing to managed property from bool to an enum:

public enum ManagedApplication {
    Yes,
    No,
    Force(Something ?)
}

In build files we would still allow the "true" or "false" values as well, 
for backward compatibility.

Just thinking out loud here, and not making a commitment of any kind that 
this will end up in NAnt :p

Gert

----- Original Message ----- 
From: "Erich Eichinger" <[EMAIL PROTECTED]>
To: "Bob Archer" <[EMAIL PROTECTED]>; "Gert Driesen" 
<[EMAIL PROTECTED]>; "SPEAR, Adrian, GBM" <[EMAIL PROTECTED]>; 
<nant-users@lists.sourceforge.net>
Sent: Friday, May 04, 2007 3:36 PM
Subject: RE: [NAnt-users] NUnit NAnt task roadmap



Ok - obviously I still owe you some piece of information ;-)

I'm want to build & test the same sources against all different platforms + 
clrversions from within 1 build file.

-Erich

________________________________

From: Bob Archer [mailto:[EMAIL PROTECTED]
Sent: Friday, May 04, 2007 3:14 PM
To: Erich Eichinger; Gert Driesen; SPEAR, Adrian, GBM; 
nant-users@lists.sourceforge.net
Subject: RE: [NAnt-users] NUnit NAnt task roadmap


X-ExchangeSecure-AntiSpam: valid(71)

Ok,



Maybe I'm confused because we don't install NUnit. We put it in the tools 
directory under the application directory of each project. This way, the 
specific version of NUnit that we are using for that project is always used. 
The specific version can also have a config file to specify the runtime 
version.



BOb





________________________________

From: Erich Eichinger [mailto:[EMAIL PROTECTED]
Sent: Friday, May 04, 2007 5:32 AM
To: Gert Driesen; SPEAR, Adrian, GBM; Bob Archer; 
nant-users@lists.sourceforge.net
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=${integration.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}${integration.codeco
verage.ncover.console}" />
                        <echo message="commandline=//w
${integration.codecoverage.workingdirectory} //x
${integration.codecoverage.nunitproject}.NCoverResults.xml
${integration.codecoverage.nunit.path}${integration.codecoverage.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.codecoverage.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}${integration.code
coverage.typemock.console}" />
                        <echo message="commandline=-link
${integration.codecoverage.typemock.profilername}
${integration.codecoverage.ncover.path}${integration.codecoverage.ncover.con
sole} //w ${integration.codecoverage.workingdirectory} //x
${integration.codecoverage.nunitproject}.NCoverResults.xml
${integration.codecoverage.nunit.path}${integration.codecoverage.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}${integration.codecoverage
..typemock.console}"
                                commandline="-link
${integration.codecoverage.typemock.profilername}
${integration.codecoverage.ncover.path}${integration.codecoverage.ncover.con
sole} //w ${integration.codecoverage.workingdirectory} //x
${integration.codecoverage.nunitproject}.NCoverResults.xml
${integration.codecoverage.nunit.path}${integration.codecoverage.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