← Back to team overview

nunit-dev team mailing list archive

Re: Framework in GAC

 

Hi Charlie,

> Or am I still not understanding you?
>
It's a complex subject and I haven't been very clear. I was taking
about a Visual Studio reference setting called 'Specific Version', not
about .NET's runtime assembly binding behaviour.

It was a response to André's question:

>> Can there be any problems when someone is working on two projects which
>> use different versions of NUnit, and where both projects expect NUnit to
>> be in the GAC?

I took this to mean two projects that expect different versions of
NUnit to be installed. In theory the user could install
'nunit.framework' in the GAC, but the common case would be for the
NUnit installer to put it there.

One solution would be to set the 'Specific Version' property of the
'nunit.framework' reference to 'False' (and only install one version
of NUnit). When I wrote this, I was under the impression that you
could only install one version of NUnit 1.5.x at a time. I've just
checked and I see it is possible to install NUnit 2.5 and NUnit 2.5.1
side by side.

> I guess such projects could either distribute the framework or
> tell you what version to install. I'd be in favor of distributing
> the framework  - but not any other part of NUnit.
>
Agreed, I think this is what we should encourage people to do
(distribute 'nunit.framework' with their project).

Regards,
Jamie.

--
http://www.testdriven.net
http://twitter.com/jcansdale
http://weblogs.asp.net/nunitaddin


On Fri, Jul 31, 2009 at 10:11 PM, Charlie Poole<charlie@xxxxxxxxx> wrote:
> Hi Jamie,
>
>> >> This isn't a problem if 'Specific Version' is set to 'True'
>> >>
>> Sorry, I should have said - this isn't a problem if 'Specific Version'
>> is set to 'False' (the default is 'True').
>
> OK - now I'm confused. Tests have to use the specific version of the
> framework they are built against. That's always been true without
> the GAC and would be true with the GAC as well.
>
> How could using another version solve the problem when it might not
> support some assert or constraint used in the test?
>
> Or am I still not understanding you?
>
>> > I guess I was mostly thinking about folks using it for their tests,
>> > who don't usually publish
>> >
>> I was thinking of open source projects that use NUnit for
>> their tests (and publish them).
>
> Ah. Yes that's fair. We should think about that.
>
> I guess such projects could either distribute the framework or
> tell you what version to install. I'd be in favor of distributing
> the framework  - but not any other part of NUnit.
>
> If the user didn't have that framework version in the GAC, the
> supplied assembly would be loaded. But if the same version were
> in the GAC, the GAC copy would be loaded. Either would work.
>
> I think the problem with the GAC only arises if you change an
> assembly without providing a new version. We don't do that.
>
> Charlie
>
>> Regards,
>> Jamie.
>>
>> --
>> http://www.testdriven.net
>> http://twitter.com/jcansdale
>> http://weblogs.asp.net/nunitaddin
>>
>>
>> On Fri, Jul 31, 2009 at 6:45 PM, Charlie
>> Poole<charlie@xxxxxxxxx> wrote:
>> > Hi Jamie,
>> >
>> >> > Can there be any problems when someone is working on two
>> projects
>> >> > which use different versions of NUnit, and where both
>> >> projects expect
>> >> > NUnit to be in the GAC?
>> >> >
>> >> This isn't a problem if 'Specific Version' is set to 'True'
>> >> on the 'nunit.framework' reference in Visual Studio. This isn't
>> >> however the default and I expect many people would forget
>> to change
>> >> it before publishing their source.
>> >
>> > Are you talking about other projects that use NUnit like
>> TD.Net does?
>> > I guess I was mostly thinking about folks using it for their tests,
>> > who don't usually publish them and who vastly outnumber guys like
>> > yourself. :-)
>> >
>> > That said, we *also* want to make it easy for other tools to to use
>> > NUnit. How can we do that?
>> >
>> >> I always recommend that people include 'nunit.framework.dll'
>> >> or link to it in their test projects. This way their source will
>> >> compile first time without needing to distribute
>> .csproj.user files
>> >> or having a dependency on the NUnit installer.
>> >
>> > That's how NUnit is (now) supposed to work. You have to have the
>> > assembly present in order to run your tests. Of course, if
>> we use the
>> > GAC it will still have to be present, but just not in the same
>> > directory.
>> >
>> > I'm not entirely following the use case you're talking
>> about, so I may
>> > be missing something.
>> >
>> > Charlie
>> >
>> >
>> >
>> >
>> >
>> >
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~nunit-dev
>> Post to     : nunit-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~nunit-dev
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
>
>



Follow ups

References