6

我有一个在 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 中。

4

2 回答 2

2

您的问题可能与没有 .gitignore 文件无关。在最坏的情况下,您会将已编译的 dll 包含在存储库中的 bin 文件夹中——从一般维护的角度来看,这是一个非常糟糕的主意,但从发布到 Azure 的角度来看却不是。

错误是黄屏死机还是只是显示该消息的空白屏幕?如果是后者,听起来好像部署失败了。您可以通过 FTP 访问网站并检查网站文件是否在应有的位置。您还可以在那里找到一个 Logs 目录 - 它可能包含有助于诊断错误的内容。这是我项目中的 .gitignore (您的项目可能需要添加更多内容/删除一些位,但至少它可以让 dll 不碍事):

# git ignore file
_ReSharper.*
[B|b]in/
obj/
*.suo
*.user

这不是 Azure 特定的,而是 ASP.NET 特定的。顺便说一句,如果您需要删除 dll 并且它们已被提交,您需要将 bin 路径添加到 .gitignore 并删除所有 dll

编辑:添加<customErrors mode="Off"/>- 至少它会告诉你错误是什么

于 2013-01-04T21:58:40.143 回答
0

Visual Studio 的 gitignore 文件的一个很好的示例位于以下位置:

https://gist.github.com/2589150

至于在 Azure 上发布,我对此并不精通,但我想您会在这里找到所需的一切:

http://msdn.microsoft.com/en-us/library/windowsazure/hh420322.aspx

更棒的是,微软的一篇关于使用 Git 发布到 Azure 的教程:

http://www.windowsazure.com/en-us/develop/net/common-tasks/publishing-with-git/

于 2013-01-04T20:14:03.167 回答