[nem-en] assembly versioning
Kamil Skalski
kamil.skalski at gmail.com
Thu Feb 16 21:44:53 CET 2006
Cool! It works! But I can't reproduce your problems with incompatible versions.
Here is what I did:
- I have nemerle.0.9.2 installed in my Program Files
- I downloaded nemerle.0.9.2 source code
- I changed assembly versions to 0.9.2.* in source code
- I tweaked your MSBuild tasks to use parameter <NoStdLib> as it was in 0.9.2
- I compiled all three assemblies without problems
I have a little suspicion, that if I were running the recently builded
version (with the 0.9.99.234 - like number) it could possible trigger
the confilct.
But my greater suspicion is that you had some old Nemerle.dll
assemblies hanging around, which got loaded during compilation and
causes conflict.
06-02-16, NoiseEHC <NoiseEHC at freemail.hu> napisał(a):
> Put the .nproj files at the ncc directory.
>
> So Nemerle.nproj and Nemerle.Compiler.nproj succeed while
> Nemerle.Macros.nproj fails.
>
>
> C:\MinGW\1.0\home\Administrator\nemerle\ncc>msbuild Nemerle.Macros.nproj
> Microsoft (R) Build Engine Version 2.0.50727.42
> [Microsoft .NET Framework, Version 2.0.50727.42]
> Copyright (C) Microsoft Corporation 2005. All rights reserved.
>
> Build started 2006.02.16. 20:31:45.
> __________________________________________________
> Project
> "C:\MinGW\1.0\home\Administrator\nemerle\ncc\Nemerle.Macros.nproj"
> (default targets):
>
> Target CoreCompile:
> C:\Program Files\Nemerle\ncc.exe /no-color /no-stdlib
> /define:_stage3 /debug+ /out:obj\Debug\Nemerle.Macros.dll /tar
> get:library ../macros/Profiling.n ../macros/xml.n ../macros/text.n
> ../macros/io.n ../macros/core.n ../macros/compiler.n
> ../macros/assertions.n ../macros/operators.n ../macros/concurrency.n
> ../macros/Util.n ../macros/Nemerle.n ../macros/Memo
> ize.n ../macros/Logging.n ../macros/Internals.n ../macros/English.n
> ../macros/Data.n ../macros/DesignPatterns.n ../macro
> s/AssemblyInfo.n
> /ref:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll
> /ref:bin/Debug/Nemerle.Compiler.dll /re
> f:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll
> C:\Program Files\Nemerle\Nemerle.MSBuild.targets(167,9): error :
> internal compiler error: got some unknown exception
> of type System.IO.FileLoadException: Could not load file or assembly
> 'Nemerle, Version=0.9.2.23, Culture=neutral, Publi
> cKeyToken=e080a9c724e2bfcd' or one of its dependencies. The located
> assembly's manifest definition does not match the as
> sembly reference. (Exception from HRESULT: 0x80131040)
> Done building target "CoreCompile" in project "Nemerle.Macros.nproj" --
> FAILED.
>
> Done building project "Nemerle.Macros.nproj" -- FAILED.
>
> Build FAILED.
> C:\Program Files\Nemerle\Nemerle.MSBuild.targets(167,9): error :
> internal compiler error: got some unknown exception of
> type System.IO.FileLoadException: Could not load file or assembly
> 'Nemerle, Version=0.9.2.23, Culture=neutral, PublicKey
> Token=e080a9c724e2bfcd' or one of its dependencies. The located
> assembly's manifest definition does not match the assemb
> ly reference. (Exception from HRESULT: 0x80131040)
> 0 Warning(s)
> 1 Error(s)
>
> Time Elapsed 00:00:05.26
>
>
> Now look at
> http://blogs.msdn.com/suzcook/archive/2003/05/29/57120.aspx
> and use fuslogvw.exe
>
> Simply these loading rules are too complicated so the simplest thing
> would be
> renaming dlls or avoiding using .* in the version (I think).
>
>
> Kamil Skalski wrote:
> > Hm, I thought MSBuild is running compiler as a separate process, so my
> > intuition is that it should not conflict. Can we see the message, or
> > can you post your MSBuild file, we you are using?
> >
> > Maybe it is a problem related to compiler. I think there was some
> > similar problem during bootstraping on mono, that is why we have
> > out.stage1/Nemerle.stage1.dll instead of out.stage1/Nemerle.dll
> >
> > 06-02-16, NoiseEHC <NoiseEHC at freemail.hu> napisał(a):
> >
> >> Can we change to versioning assemblies explicitly?
> >> I mean change 0.9.2.* to 0.9.2.XXX where we should increment XXX by hand
> >> every time we really need.
> >> The problem is that when MSBuild-ing Nemerle, the .NET loader terminates
> >> because the msbuild task
> >> and the nemerle compiler tries to load two Nemerle.dll files with
> >> different minor numbers (0.9.2.23 vs 0.9.2.25).
> >>
> >>
> >> _______________________________________________
> >> https://nemerle.org/mailman/listinfo/devel-en
> >>
> >>
> >
> >
> > --
> > Kamil Skalski
> > http://nazgul.omega.pl
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > https://nemerle.org/mailman/listinfo/devel-en
> >
>
>
> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
> <PropertyGroup>
> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
> <SchemaVersion>2.0</SchemaVersion>
> <ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
> <OutputType>Library</OutputType>
> <RootNamespace>Application</RootNamespace>
> <AssemblyName>Nemerle</AssemblyName>
> <Name>Nemerle</Name>
> <TargetPlatform>v2</TargetPlatform>
> <DefineConstants>RUNTIME_MS</DefineConstants>
> <DefineConstants>_stage3</DefineConstants>
> <WarningLevel>4</WarningLevel>
> <NoStandardLib>true</NoStandardLib>
> </PropertyGroup>
> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
> <OutputPath>bin\Debug\</OutputPath>
> </PropertyGroup>
> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
> <OutputPath>bin\Release\</OutputPath>
> </PropertyGroup>
> <Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
> <ItemGroup>
> <Folder Include="..\lib" />
> </ItemGroup>
> <ItemGroup>
> <Compile Include="..\lib\AssemblyInfo.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\concurrency.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\core.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\getopt.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\hashtable.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\heap.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\icloneable.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\icollection.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\idictionary.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\idictionaryenumerator.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\input.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\internal-numbered.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\internal.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\LazyValue.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\linkedlist.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\list.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\listenumerator.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\macros.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\narray.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\nstring.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\oldapi.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\option.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\pair.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\PipeReader.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\PipeWriter.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\queue.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\set.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\stack.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="..\lib\tree.n">
> <SubType>Code</SubType>
> </Compile>
> </ItemGroup>
> <ItemGroup>
> <Reference Include="mscorlib" />
> <Reference Include="System" />
> </ItemGroup>
> </Project>
>
> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
> <PropertyGroup>
> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
> <SchemaVersion>2.0</SchemaVersion>
> <ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
> <OutputType>Library</OutputType>
> <RootNamespace>Application</RootNamespace>
> <AssemblyName>Nemerle.Compiler</AssemblyName>
> <Name>Nemerle</Name>
> <TargetPlatform>v2</TargetPlatform>
> <DefineConstants>RUNTIME_MS</DefineConstants>
> <DefineConstants>_stage3</DefineConstants>
> <WarningLevel>4</WarningLevel>
> <NoStandardLib>true</NoStandardLib>
> </PropertyGroup>
> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
> <OutputPath>bin\Debug\</OutputPath>
> </PropertyGroup>
> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
> <OutputPath>bin\Release\</OutputPath>
> </PropertyGroup>
> <Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
> <ItemGroup>
> <Folder Include="codedom" />
> <Folder Include="external" />
> <Folder Include="generation" />
> <Folder Include="hierarchy" />
> <Folder Include="misc" />
> <Folder Include="parsing" />
> <Folder Include="typing" />
> <Folder Include="completion" />
> </ItemGroup>
> <ItemGroup>
> <Compile Include="CompilationOptions.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="codedom/NemerleCodeCompiler.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="codedom/NemerleCodeGenerator.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="codedom/NemerleCodeProvider.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="external/Codec.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="external/InternalTypes.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="external/LibrariesLoader.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/HierarchyEmitter.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/ILEmitter.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/ImplementsWrapperMaker.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/MatchingCompiler.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/DecisionTreeCompiler.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/Typer3.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="generation/Typer4.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/ExtensionMethod.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/BuiltinMethod.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/ClassMembers.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/CustomAttribute.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/DelegateClassGen.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/GlobalEnv.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/MacroClassGen.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/NamespaceTree.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/ScanTypeHierarchy.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/TypeBuilder.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/TypeInfo.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/TypesManager.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="hierarchy/XmlDump.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="misc/AssemblyInfo.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="misc/PrettyPrint.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="misc/Stats.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/AST.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/Lexer.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/MainParser-Extensions.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/MainParser.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/ParseTree.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/PreParser.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/PreParserIndent.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="parsing/Utility.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="passes.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/ConstantFolder.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/DecisionTreeBuilder.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/ErrorMessage.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/LocalContext.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/LocalValue.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/MType.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/MacroColorizer.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/MacroRegistry.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Macros.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Messenger.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/OverloadPossibility.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/RestartInErrorMode.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Solver.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/StaticTyVar.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Subst.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/TyVar.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/TyVarEnv.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/TypedTree.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Typer-CallTyper.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Typer-DelayedTyping.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Typer-OverloadSelection.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Typer-PatternTyper.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Typer.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="typing/Typer2.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="completion/CodeCompletionEngine.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="completion/CompletionEngineError.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="completion/CompletionEngineTree.n">
> <SubType>Code</SubType>
> </Compile>
> </ItemGroup>
> <ItemGroup>
> <Reference Include="mscorlib" />
> <Reference Include="System" />
> <Reference Include="bin/Debug/Nemerle.dll" />
> </ItemGroup>
> </Project>
>
> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
> <PropertyGroup>
> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
> <SchemaVersion>2.0</SchemaVersion>
> <ProjectGuid>{55f43250-a681-4326-ac8e-52995858faf6}</ProjectGuid>
> <OutputType>Library</OutputType>
> <RootNamespace>Application</RootNamespace>
> <AssemblyName>Nemerle.Macros</AssemblyName>
> <Name>Nemerle</Name>
> <TargetPlatform>v2</TargetPlatform>
> <DefineConstants>RUNTIME_MS</DefineConstants>
> <DefineConstants>_stage3</DefineConstants>
> <WarningLevel>4</WarningLevel>
> <NoStandardLib>true</NoStandardLib>
> </PropertyGroup>
> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
> <OutputPath>bin\Debug\</OutputPath>
> </PropertyGroup>
> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
> <OutputPath>bin\Release\</OutputPath>
> </PropertyGroup>
> <Import Project="$(PROGRAMFILES)\Nemerle\Nemerle.MSBuild.targets" />
> <ItemGroup>
> <Folder Include="../macros" />
> </ItemGroup>
> <ItemGroup>
> <Compile Include="../macros/Profiling.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/xml.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/text.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/io.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/core.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/compiler.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/assertions.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/operators.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/concurrency.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/Util.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/Nemerle.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/Memoize.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/Logging.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/Internals.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/English.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/Data.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/DesignPatterns.n">
> <SubType>Code</SubType>
> </Compile>
> <Compile Include="../macros/AssemblyInfo.n">
> <SubType>Code</SubType>
> </Compile>
> </ItemGroup>
> <ItemGroup>
> <Reference Include="mscorlib" />
> <Reference Include="System" />
> <Reference Include="bin/Debug/Nemerle.Compiler.dll" />
> </ItemGroup>
> </Project>
>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
>
>
>
--
Kamil Skalski
http://nazgul.omega.pl
More information about the devel-en
mailing list