PR# 18192 Eiffel Studio/Compiler not recognizing .NET assembly change

Problem Report Summary
Submitter: aweissen
Category: .NET
Priority: High
Date: 2012/05/18
Class: Bug
Severity: Critical
Number: 18192
Release: 7.0.8.8074 GPL Edition - windows
Confidential: No
Status: Analyzed
Responsible:
Environment: Windows Vista 32 Home Premium, SP 2 Visual Studio Express 2008 (C#)
Synopsis: Eiffel Studio/Compiler not recognizing .NET assembly change

Description
I've modified a .NET library file and the changes in the new .dll are not being recognized by the compiler/Eiffel Studio. In particular, I've added and modified method signatures in one of the C# classes. I've verified that the changes are being propagated to the .dll by using the new assembly in another C# solution.

Sometimes I could get a work around to work by copying the released .dll to another folder and then pointing to that assembly instead of the original - but this didn't always consistently work. It appears that there may be a caching issue?

Removing and re-adding the assembly from the project settings did not fix this.
Deleting the EIFGENs directory did not fix this.

During compilation, I could tell if the new assembly was going to be recognized at degree 5/4 if the information line appeared:
"Consuming required assembly 'Krs.Ats.IBNet, Version=9.66.0.21, Culture=neutral, PublicKeyToken=null'..."

Please note - this is a personal project I'm working on; it can't go any further until this and another issue are resolved (hence the severity and priority) but this application is just for personal use.
To Reproduce
1. Use an existing .NET produced .dll in an Eiffel application
2. Modify the source code for the .dll by changing a method signature or adding/deleting a method. Recompile and move the resulting .dll to the location of where the previous .dll was at (overwriting it.)
3. Attempt to use the modified method in the Eiffel application.
4. The old feature list for the modified (C#/.NET) class will appear in ES.
Problem Report Interactions
From:manus_eiffel    Date:2012/05/18    Download   
A temporary workaround is to write a wrapper for those generic types.

From:aweissen    Date:2012/05/18    Download   
Thanks for the response Manu -

Unfortunately I'm not developing this myself, it's an open source library I've been using for a number of years with my C# development.

I'll have to consider writing my own implementation in Eiffel - would be fun but I wanted to get the application up and running as soon as possible.

Have a great weekend
Anthony

From:manus_eiffel    Date:2012/05/18    Status: Analyzed    Download   
EiffelStudio will only update the assembly if the version is different. Therefore changing the version each time the assembly is deployed makes sense if there are changes like the one you mentioned.

If you are developing this assembly, why not doing it in Eiffel to begin with?