[IronPython] defined in multiple assemblies (framework 3.5)

Dody Gunawinata empirebuilder at gmail.com
Tue Aug 19 20:37:35 CEST 2008


IronPython for ASP.Net also uses the website model

On Tue, Aug 19, 2008 at 9:22 PM, Dody Gunawinata <empirebuilder at gmail.com>wrote:

> I can't make it work that way. I'm using the ASP.Net website model.
>
> ASP.Net is blind without either <assemblies> or putting the dll under the
> /bin directory.
>
> There are two asp.net application project model in Visual Studio 2008 (it
> got introduced in 2005). For the Web Application Project, it has explicit
> reference with alias like a normal library/.net project so "extern alias
> DLR" will work.
>
> But on ASP.Net website project model, there's no such luck. It depends on
> web.config for it to know which assemblies to load.
>
> Dody G.
>
>
> On Tue, Aug 19, 2008 at 9:14 PM, Dino Viehland <dinov at microsoft.com>wrote:
>
>>  What if you don't add the assembly in the <assemblies> tag - I don't
>> think that should be necessary because you're adding it via the command
>> line.  And .NET should still be able to find/load it because it's in the
>> GAC.
>>
>>
>>
>> *From:* users-bounces at lists.ironpython.com [mailto:
>> users-bounces at lists.ironpython.com] *On Behalf Of *Dody Gunawinata
>> *Sent:* Tuesday, August 19, 2008 11:09 AM
>>
>> *To:* Dino Viehland
>> *Cc:* Discussion of IronPython
>> *Subject:* Re: [IronPython] defined in multiple assemblies (framework
>> 3.5)
>>
>>
>>
>>             <assemblies>
>>                 <add assembly="System.Core, Version=3.5.0.0,
>> Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
>>                 <add assembly="System.Web.Extensions, Version=3.5.0.0,
>> Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
>>                 <add assembly="System.Data.DataSetExtensions, Version=
>> 3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
>>                 <add assembly="System.Xml.Linq, Version=3.5.0.0,
>> Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
>>                 <add assembly="System.Web.Entity, Version=3.5.0.0,
>> Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
>>         <add assembly="Microsoft.Scripting.Core, Version=1.0.0.4000,
>> Culture=neutral, PublicKeyToken=1f108baf14f877c2,
>> processorArchitecture=MSIL" />
>>       </assemblies>
>>
>> This is how the web.config refers to the assembly in GAC.
>>
>> and this is the compiler options
>>
>> compilerOptions="/reference:DLR=c:\Microsoft.Scripting.Core.dll"
>>
>>
>> and this is the error.
>>
>> (0,0): error CS1703: An assembly with the same identity
>> 'Microsoft.Scripting.Core, Version=1.0.0.4000, Culture=neutral,
>> PublicKeyToken=1f108baf14f877c2' has already been imported. Try removing one
>> of the duplicate references.
>>
>>  On Tue, Aug 19, 2008 at 8:48 PM, Dino Viehland <dinov at microsoft.com>
>> wrote:
>>
>> But can't you leave the assembly in the GAC and have ASP.NET pick it up
>> from there?  It should be that it can be referenced for compilation from one
>> spot and loaded from the GAC.
>>
>>
>>
>> *From:* users-bounces at lists.ironpython.com [mailto:
>> users-bounces at lists.ironpython.com] *On Behalf Of *Dody Gunawinata
>> *Sent:* Tuesday, August 19, 2008 10:46 AM
>>
>>
>> *To:* Dino Viehland
>> *Cc:* Discussion of IronPython
>> *Subject:* Re: [IronPython] defined in multiple assemblies (framework
>> 3.5)
>>
>>
>>
>> Nope. This compiles well but it won't be available for code behind.
>> ASP.Net can only compiles dll located either on the GAC or under /bin
>> directory.
>>
>> If I put Microsoft.Scripting.Core under /bin and this option, it will
>> generate error
>>
>> "Error    10    An assembly with the same identity
>> 'Microsoft.Scripting.Core, Version=1.0.0.4000, Culture=neutral,
>> PublicKeyToken=1f108baf14f877c2' has already been imported. Try removing one
>> of the duplicate references.
>> "
>>
>>
>>  On Tue, Aug 19, 2008 at 8:34 PM, Dino Viehland <dinov at microsoft.com>
>> wrote:
>>
>> Ahh, apparently csc can't pick up assemblies out of the gac…  L  But you
>> should be able to copy Microsoft.Scripting.Core.dll anywhere you want and
>> then reference it.  Now that it's in the GAC it should get picked up…  So I
>> believe the final answer should be something like:
>>
>>
>>
>> /r:DLR="C:\Microsoft.Scripting.Core.dll"
>>
>>
>>
>> Where C:\ is some directory where you decide to stash the DLL.
>>
>>
>>
>> *From:* users-bounces at lists.ironpython.com [mailto:
>> users-bounces at lists.ironpython.com] *On Behalf Of *Dody Gunawinata
>> *Sent:* Tuesday, August 19, 2008 10:24 AM
>>
>>
>> *To:* Dino Viehland
>> *Cc:* Discussion of IronPython
>> *Subject:* Re: [IronPython] defined in multiple assemblies (framework
>> 3.5)
>>
>>
>>
>> *I might be doing something wrong*, *but Microsoft.Scripting.Core.dll is
>> definitely in the GAC.*
>>
>> (No space)
>>
>> compilerOptions="/reference:DLR=Microsoft.Scripting.Core,Version=1.0.0.4000,Culture=neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL"
>> generates
>>
>> "Error    10    A /reference option that declares an extern alias can only
>> have one filename. To specify multiple aliases or filenames, use multiple
>> /reference options."
>>
>> (Quotes)
>>  compilerOptions='/reference:DLR="Microsoft.Scripting.Core,
>> Version=1.0.0.4000, Culture=neutral, PublicKeyToken=31bf3856ad364e35,
>> processorArchitecture=MSIL"'
>>
>> Error    10    Metadata file
>> 'Microsoft.Scripting.Core,Version=1.0.0.4000,Culture=neutral,PublicKeyToken=31bf3856ad364e35,processorArchitecture=MSIL'
>> could not be found
>>
>> On Tue, Aug 19, 2008 at 8:13 PM, Dino Viehland <dinov at microsoft.com>
>> wrote:
>>
>> Have you tried quotes?  It should just be getting passed to the command
>> line so maybe quotes need to be present for the compiler to recognize it
>> correctly – or maybe just removing the spaces will work.
>>
>>
>>
>> *From:* Dody Gunawinata [mailto:empirebuilder at gmail.com]
>> *Sent:* Tuesday, August 19, 2008 10:13 AM
>>
>>
>> *To:* Dino Viehland
>> *Cc:* Discussion of IronPython
>> *Subject:* Re: [IronPython] defined in multiple assemblies (framework
>> 3.5)
>>
>>
>>
>> hmm..still not working. ASP.Net reads those four qualifier as four
>> additional assemblies.
>>
>> Error    10    Source file 'Version=1.0.0.4000,' could not be found
>>
>> Error    11    Source file 'Culture=neutral,' could not be found
>> Error    12    Source file 'PublicKeyToken=31bf3856ad364e35,' could not be
>> found
>> Error    13    Source file 'processorArchitecture=MSIL}' could not be
>> found
>>
>> On Tue, Aug 19, 2008 at 7:43 PM, Dino Viehland <dinov at microsoft.com>
>> wrote:
>>
>> Doh!  I forgot you probably need to use the fully qualified assembly name
>> -  /reference:DLR=Microsoft.Scripting.Core, Version=1.0.0.4000,
>> Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL
>>
>>
>>
>>
>>
>>
>>
>> *From:* Dody Gunawinata [mailto:empirebuilder at gmail.com]
>> *Sent:* Tuesday, August 19, 2008 9:40 AM
>> *To:* Dino Viehland
>> *Cc:* Discussion of IronPython
>>
>>
>> *Subject:* Re: [IronPython] defined in multiple assemblies (framework
>> 3.5)
>>
>>
>>
>> Yikes..
>>
>> "Error    19    Metadata file 'Microsoft.Scripting.Core.dll' could not be
>> found". This is weird.
>>
>>
>>  <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
>>                   type="Microsoft.CSharp.CSharpCodeProvider, System,
>> Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
>> compilerOptions="/reference:DLR=Microsoft.Scripting.Core.dll">
>>           <providerOption name="CompilerVersion" value="v3.5"/>
>>           <providerOption name="WarnAsError" value="false"/>
>>         </compiler>
>>
>> On Tue, Aug 19, 2008 at 7:00 PM, Dino Viehland <dinov at microsoft.com>
>> wrote:
>>
>> Ok, another thought...  can you GAC the DLR assemblies and then add an
>> updated compilers tag to web.config which includes the alias?  Something
>> like:
>>
>> <system.codedom>
>>   <compilers>
>>       <compiler language="c#;cs;csharp" extension=".cs"
>> type="Microsoft.CSharp.CSharpCodeProvider, System,
>> Version=%ASSEMBLY_VERSION%, Culture=neutral,
>> PublicKeyToken=%ECMA_PUBLICKEY%" warningLevel="1"
>> compilerOptions="/reference:DLR=Microsoft.Scripting.Core.dll"/>
>>   </compilers>
>> </system.codedom>
>>
>>
>>
>>
>> -----Original Message-----
>> From: users-bounces at lists.ironpython.com [mailto:
>> users-bounces at lists.ironpython.com] On Behalf Of Fernando Correia
>> Sent: Tuesday, August 19, 2008 4:19 AM
>> To: dody at nomadlife.org; Discussion of IronPython
>> Subject: Re: [IronPython] defined in multiple assemblies (framework 3.5)
>>
>> That's a huge issue for my project. I'm trying to leverage the DLR and
>> IronPython on a ASP.NET application that targets 3.5. I hope there is
>> a work-around.
>>
>> 2008/8/19 Dody Gunawinata <empirebuilder at gmail.com>:
>> > - This pretty much locks up IronPython 2 from any .Net 3.5 based
>> website.
>> > The ASP.Net MVC framework is based on .Net 3.5 too and they use a bunch
>> of
>> > System.Core facilities in their code base. The nicest thing about .Net
>> 3.5
>> > is to be able to use LINQ on code behind and right now when I compile my
>> > application, I got a bunch of warnings about duplicated LINQ definition
>> > methods existing in 2 assemblies. Now I cannot use Action<> or Func<> in
>> > code behind.
>> >
>> > - I think this will prevent the next IP for ASP.Net to be able to use
>> .Net
>> > 3.5 libraries.
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.ironpython.com
>> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>>
>>
>>
>>
>> --
>> nomadlife.org
>>
>>
>>
>>
>> --
>> nomadlife.org
>>
>>
>>
>>
>> --
>> nomadlife.org
>>
>>
>>
>>
>> --
>> nomadlife.org
>>
>>
>>
>>
>> --
>> nomadlife.org
>>
>
>
>
> --
> nomadlife.org
>
>


-- 
nomadlife.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080819/cbf965b3/attachment.html>


More information about the Ironpython-users mailing list