我有一个在 Visual Studio 2012 中开发的 ASP.NET、MVC4、C# 应用程序。到目前为止,我已经使用 VS Publish 工具成功地部署到了 Azure 网站。
我现在已经在 Azure 网站上成功设置了 Git 发布,并将其与 GitHub 存储库链接。我已经在本地机器上初始化了一个存储库,并将全部内容推送到 GitHub 存储库。Azure 立即将这一切都拉了回来。
现在,我期待在没有 .gitignore 文件的情况下,这将无法完美运行,我是对的。
所以我的问题是:从我的本地 Visual Studio 工作目录中,我应该从存储库中省略什么?即我的.gitignore 中应该有什么?
此外,在尝试让应用程序在 Azure 网站上运行时,我还应该考虑其他任何因素吗?
注释:
1. 我仔细查看了https://gist.github.com/2589150,但它似乎与我在 VS 工作目录中看到的不符。
2. https://github.com/github/gitignore/blob/master/CSharp.gitignore似乎更近了,我目前正在努力了解它的哪些部分适用于我的情况。例如,如果我排除 bin/*,则应用程序无法在 Azure 上部署。
更新:
1)我按照@levelnis的建议修改了我的web.config文件来关闭自定义错误:
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
我发现我的问题是数据库连接字符串不再由 VS Publish 工具转换为 Azure。我不得不直接修改它并提交到 repo。
重要提示:我通过简单地查看 VS Publish 工具在 Azure 上发布的内容找到了正确的字符串,方法是使用不同的发布配置文件发布到临时 Azure 网站。
这解决了问题,部署非常顺利。
2)此时我的 .gitignore 文件有以下内容:
# 建立文件夹 对象/ # 用户特定文件 *。用户 # SQL Server 文件 App_Data/*.mdf App_Data/*.ldf
为了整洁,我似乎可以剪掉更多,但这并没有影响通过 GitHub 部署的正确操作,现在实际上工作非常顺利。
最后,方便的 git 命令用于从 repo 中删除文件而不删除它们。几个例子:
git rm -r --cached obj/* git rm -r --cached */*.user
然后显然在添加、提交和推送之前将这些添加到 .gitignore 中。