I wrote the following script to install the svn version of MonoDevelop
#!/usr/bin/env bash
PREFIX=/opt/local
check_errs()
{
if [[ $? -ne 0 ]]; then
echo "${1}"
exit 1
fi
}
download()
{
if [ ! -d ${1} ]
then
svn co http://anonsvn.mono-project.com/source/trunk/${1}
else
(cd ${1}; svn update)
fi
}
download mono
download mcs
download libgdiplus
(
cd mono
./autogen.sh --prefix=$PREFIX
make
make install
check_errs
)
(
cd libgdiplus
./autogen.sh --prefix=$PREFIX
make
make install
check_errs
)
download monodevelop
export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig
(
cd monodevelop
./configure --prefix=$PREFIX --select
check_errs
make
check_errs
)
Everything works fine until the last make step for the monodevelop pacakge, where the script exits with the error:
./MonoDevelop.WebReferences/MoonlightChannelBaseExtension.cs(320,82): error CS1061: Type `System.ServiceModel.Description.OperationContractGenerationContext' does not contain a definition for `SyncMethod' and no extension method `SyncMethod' of type `System.ServiceModel.Description.OperationContractGenerationContext' could be found (are you missing a using directive or an assembly reference?)
./MonoDevelop.WebReferences/MoonlightChannelBaseExtension.cs(325,49): error CS1061: Type `System.ServiceModel.Description.OperationContractGenerationContext' does not contain a definition for `SyncMethod' and no extension method `SyncMethod' of type `System.ServiceModel.Description.OperationContractGenerationContext' could be found (are you missing a using directive or an assembly reference?)
./MonoDevelop.WebReferences/MoonlightChannelBaseExtension.cs(345,115): error CS1061: Type `System.ServiceModel.Description.OperationCo开发者_StackOverflowntractGenerationContext' does not contain a definition for `SyncMethod' and no extension method `SyncMethod' of type `System.ServiceModel.Description.OperationContractGenerationContext' could be found (are you missing a using directive or an assembly reference?)
./MonoDevelop.WebReferences/MoonlightChannelBaseExtension.cs(365,82): error CS1061: Type `System.ServiceModel.Description.OperationContractGenerationContext' does not contain a definition for `BeginMethod' and no extension method `BeginMethod' of type `System.ServiceModel.Description.OperationContractGenerationContext' could be found (are you missing a using directive or an assembly reference?)
Compilation failed: 4 error(s), 1 warnings
make[4]: *** [../../../build/AddIns/MonoDevelop.WebReferences/MonoDevelop.WebReferences.dll] Error 1
make[4]: Leaving directory `/home/drufat/Desktop/Checkout/mono/monodevelop/main/src/addins/MonoDevelop.WebReferences'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/drufat/Desktop/Checkout/mono/monodevelop/main/src/addins'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/drufat/Desktop/Checkout/mono/monodevelop/main/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/drufat/Desktop/Checkout/mono/monodevelop/main'
make: *** [all-recursive] Error 1
Any ideas on how to fix this? I suppose the build gets mixed up with the default installation of mono in Ubuntu, and is looking for a symbol that is not present there.
My build configuration looks as follows:
1. [X] main
2. [ ] extras/JavaBinding
3. [ ] extras/BooBinding
4. [X] extras/ValaBinding
5. [ ] extras/AspNetEdit
6. [ ] extras/GeckoWebBrowser
7. [ ] extras/WebKitWebBrowser
8. [ ] extras/MonoDevelop.Database
9. [ ] extras/MonoDevelop.Profiling
10. [ ] extras/MonoDevelop.AddinAuthoring
11. [ ] extras/MonoDevelop.CodeAnalysis
12. [ ] extras/MonoDevelop.Debugger.Mdb
13. [ ] extras/MonoDevelop.Debugger.Gdb
14. [ ] extras/PyBinding
15. [ ] extras/MonoDevelop.IPhone
16. [ ] extras/MonoDevelop.MeeGo
You should set a up a parallel Mono environment.
If you're just interested in installing the latest release of MonoDevelop, I highly recommend Badgerports: http://badgerports.org/
精彩评论