SVN Framework в C # - PullRequest
       3

SVN Framework в C #

2 голосов
/ 09 ноября 2010

В настоящее время я работаю над игрой на базе небольшого терминала, вроде старого доброго MUD, написанного на C #.Поскольку я размещаю его на Googlecode, я использовал внешний .sh-Script, чтобы сделать svn up, если проект существует, и svn checkout, если его нет.Моя цель - включить SVN непосредственно в мой исполняемый файл, чтобы сделать его полностью независимым от платформы (см. Моно).Я уже гуглил такие общие вещи, как «C # SVN», и он всегда перенаправлял меня на «SharpSVN».Жаль, что внутри нет источника, только несколько .dll.

Теперь, что я хотел сделать (и спросить, возможно ли это в любом случае):

  • Запустить приложение
  • Проверьте, доступна ли более новая ревизия
  • Выполните svn up
  • Скомпилируйте
  • Запустите новый исполняемый файл, если номера ревизий не равны тем, которые были в прошлый раз (aka. более новая версия была построена)

Я сильно сомневаюсь, можно ли запустить приложение после выхода, но вы наверняка знаете больше меня;)

РЕДАКТИРОВАТЬ: //
Вот .sh-скрипт, который я выполнял раньше / выполняется в настоящее время:

#!/bin/bash
if [ $# -eq 0 ]; then
if [ ! -d "$HOME/csdungeon" ]; then
    echo "Which version would you like to download? (G)erman / (E)nglish"
    read getinput
    case "$getinput" in
    G|g) svn checkout http://c-sharp-dungeon.googlecode.com/svn/branches/translations/german/ $HOME/csdungeon
    ;;
    E|e) svn checkout http://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon
    ;;
    *) echo "No correct localisazion selected."
    echo "Downloading english version now:"
    svn checkout http://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon
    ;;
    esac
else
    cd $HOME/csdungeon
    svn up
    rm $HOME/csdungeon/c-sharp-dungeon.exe
fi
gmcs -out:$HOME/csdungeon/c-sharp-dungeon.exe $HOME/csdungeon/*.cs
mono $HOME/csdungeon/c-sharp-dungeon.exe
fi

if [ $# -ge 1 ]; then
    if [ ! -d "$HOME/csdungeon" ]; then
        echo "Which version would you like to download? (G)erman / (E)nglish"
        read getinput
        case "$getinput" in
        G|g) svn checkout https://c-sharp-dungeon.googlecode.com/svn/branches/translations/german/ $HOME/csdungeon --username $1
        ;;
        E|e) svn checkout https://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon --username $1
        ;;
        *) echo "No correct localisazion selected."
        echo "Downloading english version now:"
        svn checkout https://c-sharp-dungeon.googlecode.com/svn/trunk $HOME/csdungeon --username $1
        ;;
        esac
    else
        cd $HOME/csdungeon
        svn up
        rm $HOME/csdungeon/c-sharp-dungeon.exe
    fi
    gmcs -out:$HOME/csdungeon/c-sharp-dungeon.exe $HOME/csdungeon/*.cs
    mono $HOME/csdungeon/c-sharp-dungeon.exe
fi

Ответы [ 3 ]

3 голосов
/ 09 ноября 2010

SharpSVN является полностью открытым исходным кодом, здесь репозиторий или вы ищете несколько примеров?

Но AFAIK SharpSVN - это не кроссплатформенная библиотека (возможно, ситуация уже изменилась). Таким образом, вы можете просмотреть исходный код SharpSVN и проверить, подходит ли он для ваших нужд, или попробуйте самостоятельно использовать Subversion API .

1 голос
/ 09 ноября 2010

Ваш шаг за шагом не будет работать без вспомогательного приложения.Я бы предложил выполнить проверку, а затем запустить вспомогательное приложение и закрыть его.Затем вспомогательное приложение выполняет загрузку / компиляцию / перевод.Я полагаю, что у ОАК будет полевой день с ним.Убедитесь, что вы считаете это с самого начала.

0 голосов
/ 09 ноября 2010

Это та работа, для которой было изобретено ClickOnce .Я понятия не имею, работает ли он на моно, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...