I have a problem with version mismatch and have no idea to solve it.
Situation
initial situation
- Integration.DataExchange.Processing.Implementation is built on buildserver -> 7.0.85.27765
- Integration .DataExchange.TestTools and Integration.DataExchange.Processing.Test manually created -> 7.0.85.1420
- Integration.Infrastructure.Serialization.Test uses them and throws an exception
Magazine
Error message from test
Test method Integration.Infrastructure.Serialization.ProcessInfoSerializerTests.SerializeAndDeserializeShouldBehaveResultInfoWithSameValues threw exception:
System.IO.FileLoadException: Could not load file or assembly 'Integration.DataExchange.Processing.Implementation, Version=7.0.85.1420, Culture=neutral, PublicKeyToken=f15342ffe5641632'
or one of its dependencies. The located assembly manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
corresponding welding log
*** Assembly Binder Log Entry (25.02.2014 @ 09:49:58) ***
The operation failed.
Bind result: hr = 0x80131040. No description available.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: DisplayName = Integration.DataExchange.Processing.Implementation, Version=7.0.85.1420, Culture=neutral, PublicKeyToken=f15342ffe5641632
(Fully-specified)
LOG: Appbase = file:///d:/sources/Core/Bin/Debug
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = QTAgent.exe
Calling assembly : Integration.Infrastructure.Serialization.Test, Version=1.0.453.2209, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\xxx\AppData\Local\Temp\tmp913E.tmp
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Integration.DataExchange.Processing.Implementation, Version=7.0.85.1420, Culture=neutral, PublicKeyToken=f15342ffe5641632
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///d:/sources/Core/Bin/Debug/Integration.DataExchange.Processing.Implementation.DLL.
LOG: Assembly download was successful. Attempting setup of file: d:\sources\Core\Bin\Debug\Integration.DataExchange.Processing.Implementation.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: Integration.DataExchange.Processing.Implementation, Version=7.0.85.27765, Culture=neutral, PublicKeyToken=f15342ffe5641632
WRN: Comparing the assembly name resulted in the mismatch: Revision Number
ERR: The assembly reference did not match the assembly definition found.
ERR: Run-from-source setup phase failed with hr = 0x80131040.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
Decision
what I think
Integration.Infrastructure.Serialization.Test Integration.DataExchange.TestTools 7.0.85.1420. TestTools Integration.DataExchange.Processing.Implementation 1420 . 27765.
. ,
CS-Project
Integration.DataExchange.TestTools.csproj
<ProjectReference Include="..\Processing\Interface\Integration.DataExchange.Processing.Interface.csproj">
<Project>{A67C3F93-F3CA-4746-9E5F-36645CD1A206}</Project>
<Name>Integration.DataExchange.Processing.Interface</Name>
</ProjectReference>
Integration.DataExchange.Processing.Test.csproj
<ProjectReference Include="..\Implementation\Integration.DataExchange.Processing.Implementation.csproj">
<Project>{61BF5881-C4B1-47E0-9B68-C9517FE3302E}</Project>
<Name>Integration.DataExchange.Processing.Implementation</Name>
</ProjectReference>
Integration.Infrastructure.Serialization.Test.csproj
<Reference Include="Integration.DataExchange.Processing.Implementation">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="Integration.DataExchange.Processing.Interface">
<SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="Integration.DataExchange.Processing.Test">
<HintPath>$(SolutionDir)Lib\Debug\DataExchange.Test\Integration.DataExchange.Processing.Test.dll</HintPath>
</Reference>
<Reference Include="Integration.DataExchange.TestTools">
<HintPath>$(SolutionDir)Lib\Debug\DataExchange.Test\Integration.DataExchange.TestTools.dll</HintPath>
</Reference>