答案 0 :(得分:0)
我采用的方法是创建一个脚本,从git中提取最新的部署版本,停止IIS,复制新版本,启动IIS。它非常粗糙,但如果您的git存储库中唯一的东西是最新的可部署版本,它将起作用。
我甚至在Visual Studio中设置了发布按钮以复制到我的本地git部署仓库。然后,我只是从我的开发机器上推出,然后在我的目标Web服务器上运行我的部署脚本,这将提取最新版本。
SQL更新脚本部分问题很有趣。听起来你需要类似于Rails中的db迁移的东西。这不是我必须处理的事情,但我会在此指出:http://www.infoq.com/news/2009/01/migrations_dotnet
答案 1 :(得分:0)
我将此视为执行某些步骤的应用程序子系统:
还有其他方法可以解决这个问题,但这种模式可以安全无虞。
要从ASP.NET中更新bin文件夹,您的IIS需要允许访问您的bin文件夹。因此,您可以考虑通过创建自定义权限集来调整您的环境安全性:
<IPermission
class="FileIOPermission"
version="1"
Read="$AppDir$"
Write="$AppDir$"
Append="$AppDir$"
PathDiscovery="$AppDir$" />
这样您就可以将工作文件复制到此特殊文件夹中。
参考
ps。:如果您发现bin文件夹有问题。将新版本的文件复制到GAC并将程序集引用管理为web.config版本。听起来也不错。