Скачал исходники с https://github.com/ratzlaff/XCom-tools , попытался собрать xbuild и в monodevelop, получаю ошибки:
CSC: error CS1548: Error during assembly signing. The specified key file `keyFile.snk' does not exist
CSC: error CS0518: The predefined type `System.Object' is not defined or imported
...
и много похожих ошибок CS0518 по поводу `System.чтонибудь'
В файлах *.csproj есть строка
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
xbuild /p:TargetFrameworkVersion="v2.0"
Попробовал, как советуют на StackOverflow, заменить версию во всех TargetFrameworkVersion на 4.5. Посыпались ошибки:
Interfaces/Base/IMapDesc.cs(4,7): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
Interfaces/Base/IMapDesc.cs(5,7): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
Interfaces/IXCImageFile.cs(4,7): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
Interfaces/IXCImageFile.cs(5,7): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
Interfaces/IXCImageFile.cs(6,7): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
ConsoleForm.cs(8,7): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
Interfaces/Base/IMapDesc.cs(11,3): error CS0246: The type or namespace name `IAssemblyLoadable' could not be found. Are you missing an assembly reference?
Interfaces/Base/IMapDesc.cs(12,3): error CS0246: The type or namespace name `IOpenSave' could not be found. Are you missing an assembly reference?
Interfaces/IXCImageFile.cs(16,3): error CS0246: The type or namespace name `IAssemblyLoadable' could not be found. Are you missing an assembly reference?
Interfaces/IXCImageFile.cs(16,21): error CS0246: The type or namespace name `IOpenSave' could not be found. Are you missing an assembly reference?
Updator.cs(5,23): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
Interfaces/Base/IMap_Observer.cs(17,3): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
GameInfo.cs(27,38): error CS0246: The type or namespace name `DSShared' could not be found. Are you missing an assembly reference?
DSShared — одна из частей большего проекта. Я попробовал собрать её отдельно, получил:
: warning : Default tasks file /usr/lib/mono/3.5/Microsoft.Common.tasks not found, ignoring.
Project "/home/tkzv/openxcom/tools/XCom-tools/DSShared/DSShared.sln" (default target(s)):
Target ValidateSolutionConfiguration:
: error : Error initializing task Message: Not registered task Message.
В итоге удалось всё собрать, установив MonoDevelop, который автоматически обновил формат всех конфигов и прописал везде версию 4.5. (Панель «Solution», кнопка напротив имени проекта, «Options», «Build->General», убедиться, что «Target Framework» = «Mono / .Net 4.5».) И всюду пришлось подключать DSShared руками, хотя она изначально была там прописана. (Там же, кнопка напротив «References», «Edit References...», в All или Projects включить библиотеку.)
Остался вопрос: как можно было то же сделать в командной строке, без установки MonoDevelop?
И заодно вопрос, если заглянут знатоки GIT. Если я создам на Гитхабе проект-форк, как загрузить мои изменения в форк без повторного скачивания всего проекта?