This is a little bit confusing:
There are 2 versions, both designated as "Cobra Language Binding version 0.5.1".
A: The "precompiled package", available at
http://mdrepo.ramonrocha.com/It has the AssemblyVersion 1.0.5104.31694.
B: The version "installable from source", available at
https://github.com/ramon-rocha/MonoDevelop.CobraBindingOn 2014-01-02 it had the AssemblyVersion 1.0.5115.30614.
Both are quite different:
A
- can build a solution with more than one project,
- but does not attempt to do "code completion ...".
B
- shows some "code completion ..." behavior,
- but if you add another project it does not build anymore.
Testing A------------------------------------
A0 - Install the version A.
A1 - Create a new solution, named "A", with a "Cobra Console Project", named "Main"
(Xamarin Studio: New Solution > Cobra > Console Project > Name: "Main", Solution name: "A")
A2 - Add a "Cobra Library Project", named "Lib".
A3 - in "Main" add a
Project Reference to "Lib".
("View Solution > Main > References > Edit References... > Projects")
A4 -
Close "Xamarin Studio"!.
(To prevent error CS1703.)
A5 - Reopen "Xamarin Studio", and reopen the solution "A".
A6 - In arbitrary order: change the source in "Lib" or "Main", using "Lib" in "Main", and "Build".
It shows "incremental building".
You can inspect the "Build Output" when you point with the mouse on "Errors" at the bottom of the main window.
Do a "Build All", change "Main" but not "Lib", "Build All":
The "Build Output" for "Lib" shows:
' Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files. 'This is very useful. You can divide a solution in several projects, and if the interdependency is low, the "Build" is much faster than the "Rebuild".
Testing B------------------------------------
B0 - Install the version B.
(Run the "install.cobra" program, if it works then it will overwrite the previously installed version A.)
B1 - Create a new solution, named "B", with a "Cobra Console Project", named "Main".
B2 - Add a "Cobra Library Project", named "Lib".
B3 - In "Main" add a
Project Reference to "Lib".
B4 -
Close "Xamarin Studio" ! (To prevent error CS1703.)
B5 - Reopen "Xamarin Studio", and reopen the solution "B".
B6 - Change the source in "Lib", then change the source in "Main".
- It shows some "code completion..." behavior !
- "Build (All|Lib|Main)": error MSB3021
- "Rebuild (All|Lib|Main)": error MSB3021
- "Clean (All|Lib|Main)": warning MSB3061
You cannot build anymore, even if you close and reopen the IDE!Noteserror MSB3021
- Copying file from "obj\Debug\Lib.dll" to "bin\Debug\Lib.dll".
- C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2868,9):
- - error MSB3021: Unable to copy file "obj\Debug\Lib.dll" to "bin\Debug\Lib.dll".
- - The process cannot access the file 'bin\Debug\Lib.dll' because it is being used by another process.
warning MSB3061
- C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3607,9):
- warning MSB3061: Unable to delete file "D:\Dev\_MD\Xmp\B\Lib\bin\Debug\Lib.dll".
- - Access to the path 'D:\Dev\_MD\Xmp\B\Lib\bin\Debug\Lib.dll' is denied.
error CS1703
- error: (...)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll:
- - error CS1703: An assembly with the same identity
- - - "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
- - has already been imported. Try removing one of the duplicate references.
... But if you remove "System.Core" you will get (later) this error:
error MSB6001
- (MSBuildExtensionsPath)\Cobra\Cobra.targets(149,3):
- - error MSB6001: Invalid command line switch for "cobra.bat". Value cannot be null.
- - (MSBuildExtensionsPath)\Cobra\Cobra.targets(149,3): error MSB6001: Parameter name: collection
Conditions of the tests:
- Windows XP (Microsoft Windows NT 5.1.2600 Service Pack 3)
- .NET CLR v4.0.30319
- XamarinStudio-4.2.2-2.msi