Home Dashboard Directory Help
Search

Microsoft Visual Studio 2010 and Intel Visual Fortran Composer Integration by nrgisem1970


Status: 

Closed
 as Won't Fix Help for as Won't Fix


1
0
Sign in
to vote
Type: Bug
ID: 629337
Opened: 12/7/2010 2:49:01 AM
Access Restriction: Public
0
Workaround(s)
view
0
User(s) can reproduce this bug

Description

I have a C++ project in a Visual Studio 2010 Solution. This depends on an Intel Visual Fortran Composer library project. Adding the Fortran project as a dependency via Project Dependencies... builds the C++ and dependent Fortran library OK but the C++ does not auto link to the Fortran library.

The following msdn blog entry has info on Microsoft moving project dependencies from solution files to project files.

http://blogs.msdn.com/b/vcblog/archive/2010/03/02/visual-studio-2010-c-project-upgrade-guide.aspx

This seems to suggest that things have changed for linking in VS2010. It states that instead references should added to the Framework and Reference section of the C++ projects Properties dialog. However, Add New Reference... from this dialog does not list any of the Intel Fortran projects. Adding a direct reference to the Fortran .lib file in the C++ linker options works, but should we really have to do this?

I have contacted Intel about this, and they say there is nothing they can fix at their end and that they have reported the issue to Microsoft. Can this issue be sorted out?
Details
Sign in to post a comment.
Posted by Microsoft on 1/26/2011 at 5:34 PM
This needs a detailed diagnosis by Microsoft Product Support Service. Please open a ticket with Microsoft PSS support at http://support.microsoft.com
If your organization does not have a Microsoft support contract, please email msbuild@microsoft.com and we (the product engineering team) will give you a free support voucher.

Regards,
VS Project Team
Posted by Microsoft on 1/24/2011 at 5:29 PM
Hi,

Also, this "MSB0001 : Internal MSBuild Error :.... 'System.OutOfMemoryException' is thrown." is a different bug and I am forwarding the bug to the owner.

Its not hardcoded behavior but a concious design decision we took in VS2010. Implicit references created for you when you declare a dependency does not scale well. To get the desired behavior the ideal thing would be for the .vfproj to be MSBuild based and have its output wired correctly such that a project reference can be added to the fortran project.

Thanks,
Amit

Posted by Microsoft on 1/24/2011 at 5:24 PM
Hi,

Thanks for reporting this issue. Unfortunately its a design changes we made in VC++ 2010. As you note project dependencies dont automatically link the .lib output of the project and we recommend creating Project-To-Project references to achieve the same. However for fortran projects are not built on MSbuild this functionality is not available. To workaround you will have to explicitly add the .lib to be linked.

Thanks,
Amit Mohindra
Visual C++ Team
Posted by nrgisem1970 on 1/5/2011 at 3:46 AM
I have added a zip file containing a solution and several projects (for Microsoft's eyes only please) which demonstrates the OutOfMemory problem.

There are no source files included so DON't try to build it, but in the TransientEngine\Debug folder there is a Win32 DLL. When you open the solution, try to add the TransientEngine project as a Reference from the TransientResponse project. It appears that VS2010 then attempts to read the vatransient_DEBUG.dll and fails. If you re-open the solution (without saving changes), rename the dll, and repeat the add Reference process the crash does not occur. However, later mods to the TransientResponse project references will fail if the vatransient_DEBUG.dll is present. What is it about this dll that is causing the failure? VS2010 reports the OutOfMemory exception from the System.Reflection.AssemblyName.nGetFileInformation(String s) method. What file information in the DLL does it have a problem with?

I hope you can use this to reproduce the problem and get to the bottom of it. I notice there are other reports of this problem in other posts, with C++ only projects too.
Posted by nrgisem1970 on 12/14/2010 at 8:10 AM
Have attached screenshot of OutOfMemoryException window containing stack trace.
Posted by nrgisem1970 on 12/14/2010 at 8:00 AM
Have also found that if Add Reference is used to add a reference from one C++ project to a dependent C++ project which in turn depends on Intel Fortran project(s), then an MSB0001 : Internal MSBuild Error :.... 'System.OutOfMemoryException' is thrown.

To get this to work such projects have to be added as a dependency at solution level via "Project Dependencies..."

So whilst there is a workaround, it is somewhat annoying and fiddly to set up, as we have a Solution containing 115 inter-dependent Projects (C#, C++ and Intel Fortran). Have Intel missed something they should be adding to their *.vfproj project files or is there some hard-coded functionality problem which Microsoft needs to sort? Thanks.
Posted by Microsoft on 12/7/2010 at 8:54 PM
Thanks for your feedback.

We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.
Posted by Microsoft on 12/7/2010 at 11:23 AM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.
File Name Submitted By Submitted On File Size  
Internal MSBuild Error.jpg 12/14/2010 239 KB
Failure.zip (restricted) 1/5/2011 -