Have you tried using the newer dynamic stuff to do your COM interop calls? http://www.codeproject.com/Tips/143694/Get-rid-of-COM-Interop-DLL-by-using-the-new-C-4-dy http://msdn.microsoft.com/en-us/magazine/ff714583.aspx
On Wed, Nov 14, 2012 at 4:27 AM, Peter Dillinger <pcd...@gmail.com> wrote: > (This message was not accepted from my work email and or from the > forum interface. Trying personal email...) > > In investigating the ability to drop in mcs as a replacement for csc > (currently trying out mono 2.11.4), I've run into issues in compiling > things from some Microsoft C# 4.0 code samples that involve COM > interop. Here's a simplified example: > > public class Program > { > public static void Test(Microsoft.Office.Interop.Excel.Application xl) > { > xl.Columns[2].AutoFit(); > } > public static void Test2(Microsoft.Office.Interop.Excel.Range r) > { > r.Value = 42; > } > } > > Compiling this with csc requires -link (aka /link), as seen here: > > $ cp /cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ > 10.0/Visual\ Studio\ Tools\ for\ > Office/PIA/Office12/Microsoft.Office.Interop.Excel.dll . > $ /cygdrive/c/Windows/Microsoft.NET/Framework/v4.0.30319/csc.exe > -target:library > -link:Microsoft.Office.Interop.Excel.dll Program.cs > Microsoft (R) Visual C# Compiler version 4.0.30319.17929 > for Microsoft (R) .NET Framework 4.5 > Copyright (C) Microsoft Corporation. All rights reserved. > $ /cygdrive/c/Windows/Microsoft.NET/Framework/v4.0.30319/csc.exe > -target:library > -r:Microsoft.Office.Interop.Excel.dll Program.cs > Microsoft (R) Visual C# Compiler version 4.0.30319.17929 > for Microsoft (R) .NET Framework 4.5 > Copyright (C) Microsoft Corporation. All rights reserved. > > Program.cs(5,23): error CS1061: 'object' does not contain a definition > for 'AutoFit' and no extension method 'AutoFit' accepting a first > argument of type 'object' could be found (are you missing a using > directive or an assembly reference?) > $ > > So trying to compile this with mcs, it seems the closest we can come > to -link is to replace with -r, so we would expect it to fail > similarly to mcs above, which it does for 'Test' but 'Test2' has other > problems: > > $ /cygdrive/c/Program\ Files\ \(x86\)/Mono-2.11.4/bin/mcs.bat > -target:library > -r:Microsoft.Office.Interop.Excel.dll Program.cs > Program.cs(5,23): error CS1061: Type `object' does not contain a > definition for `AutoFit' and no extension method `AutoFit' of type > `object' could be found. Are you missing an assembly reference? > C:\PROGRA~2\MONO-2~1.4\lib\mono\4.5\mscorlib.dll (Location of the > symbol related to previous error) > Program.cs(9,11): error CS1546: Property or event > `Microsoft.Office.Interop.Excel.Range.Value' is not supported by the > C# language > D:\scalability-csharp\test-cs4codesamples-orig\samples\This sample > shows how to use the\C#\Microsoft.Office.Interop.Excel.dll (Location > of the symbol related to previous error) > Program.cs(9,11): error CS0200: Property or indexer > `Microsoft.Office.Interop.Excel.Range.Value' cannot be assigned to (it > is read-only) > Compilation failed: 3 error(s), 0 warnings > $ > > This leads me to two questions: > > (1) Is there any plan to support an equivalent of csc -link (aka > /link)? Or is there some other work-around I don't know about? > > (2) It appears that the "is not supported by the C# language"+"cannot > be assigned to" issue a bug. Is that correct? (If so, I can file > it.) > > And a bonus question: > > (3) For general C# language issues where csc willingly compiles > something that is arguably not adherent to the language spec, but mcs > rejects it, does the Mono team consider that a valid bug or > enhancement request? (Is there a "duplicate Microsoft's bugs" mode > for mcs?) > > Thanks for your help, > > > Peter Dillinger | Senior Engineer > Coverity | 185 Berry Street | Suite 6500, Lobby 3 | San Francisco, CA 94107 > The Leader in Development Testing > Read our profile in Forbes, Coverity Gets Code Right 25% Faster > _______________________________________________ > Mono-devel-list mailing list > Mono-devel-list@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-devel-list >
_______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list