我目前正在开发一款基于小型终端的游戏,例如用 C# 编写的老式 MUD 游戏。
由于我将其托管在 Googlecode 上,因此如果项目存在,我使用外部 .sh 脚本执行 svn up
操作,如果项目不存在,则使用 svn checkout
操作。
我的目标是将 SVN 直接包含到我的可执行文件中,使其完全独立于平台(请参阅 mono)。
我已经在 google 上搜索了诸如“C# SVN”之类的通用内容,它总是将我重定向到“SharpSVN”。可惜里面没有源代码,只有一些 .dll。
现在我想做的(并询问是否可能):
- 启动应用程序
- 检查是否有新版本可用
- 执行
svn up
- 编译
- 如果修订版号与上次的版本号不相等(即构建了较新的修订版),则启动新的可执行文件
我非常怀疑退出后是否可以启动该应用程序,但你肯定比我了解更多;)
编辑://
这是我之前运行/当前正在运行的 .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
最佳答案
SharpSVN是完全开源的,这里repository或者你寻找一些例子?
但是据我所知 SharpSVN 不是跨平台库(也许情况已经改变了)。所以你可以浏览SharpSVN的源代码并检查它是否适合你的需求或者尝试依赖Subversion API直接由您自己。
关于c# - C# 中的 SVN 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4128373/