在VS2010 / VSOnline中部署分支并维护配置

时间:2014-01-21 05:22:07

标签: c# visual-studio-2010 tfs clickonce azure-devops

我正试图让我们的一个内部c#点击一次应用程序到VSOnline进行源代码管理,以允许外部开发人员访问。

我想我已经在源代码管理编辑器中进行了设置和工作,但是我无法解决如何实际使用日常设置的问题。

我有一些git经验,但没有TFS经验,但是我选择了TFS选项,因为我认为开发人员比git更熟悉它。

我想要实现的是3个分支; Main / Trunk,Dev和Release,并且至少可以部署Release和Main。发布适用于外部客户,主要适用于内部客户。

目前我的Source Control Explorer看起来像;

DefaultCollection
-->Name of project
---->(Branch icon) Dev (created as a Branch from Main)
---->(Branch icon) Main
---->(Branch icon) Release (created as a Branch from Main)

2件事;

  1. 在使用方面,我不确定如何在分支之间进行编码/进行更改?我是否只打开我想要处理的分支的解决方案文件,然后保存所有更改,然后将其作为变更集提交?或者是手动检查文件,处理文件,然后重新检入文件?

  2. 鉴于它是ClickOnce应用程序;每个分支都部署到不同的IIS站点,这意味着差异应用程序标识,路径和设置。我是否正确使用分支机构或是否有更好的方法?我担心有人提交错误的文件并导致强制卸载/重新安装该应用程序。

  3. 任何指针/ docco非常感谢;请注意我正在使用VS2010。

    谢谢, 利安

2 个答案:

答案 0 :(得分:1)

  

在使用方面,我不确定如何在分支之间进行编码/进行更改?

我建议为每个分支创建单独的工作区。这样,当您尝试检入开发代码时,您不会意外地签入发布代码。此外,当您想要切换正在处理的代码分支时,可以切换工作区。这应该使事情“更清洁”,更容易使用。

  

我是否只打开我想要处理的分支的解决方案文件,然后保存所有更改,然后将其作为变更集提交?或者是手动检查文件,处理它,然后重新检入它?

您不必手动检查它。如果我没记错的话,当您开始进行更改时,它将默认自动检出。您可以根据需要检查大块的代码。但是,如果要检查引用ClassB.cs中所需更改的ClassA.cs的更改,请确保同样检查它。您不希望其他开发人员将源代码保留在损坏状态。

如果您开始处理某些事情并且必须暂停该工作以执行其他重要性更高的任务,shelve您的工作而不是让您的工作空间变得混乱,完成了一半的工作,这使得难以管理检查。

  

鉴于它是ClickOnce应用程序;每个分支都部署到不同的IIS站点,这意味着差异应用程序标识,路径和设置。我是否正确使用分支机构,或者有更好的方法吗?

我会考虑使用web.config transformations。您仍然需要多个分支,但要将测试/完成/开发代码彼此分开。

答案 1 :(得分:1)

如何在分支之间交换

如果你习惯于GIT而不是TFVC中的“重量级”分支可能会有点混乱。你遇到过没有真正的“在分支之间切换”。您将分支映射到本地文件夹,并打开那里的文件,您正在“在该分支上工作”。

Lee指出,您可以为每个分支创建单独的工作区,这将隔离每个分支的工作区域。如果您使用的是本地工作区,则每个工作区都有自己的“/ tf $”文件夹,TFVC等效于“/.git”文件夹。

MSDN上有一些文档可以更详细地解释这一点:

如何办理登机手续

TFVC中的变更集相当于Git中的提交,它是一组逻辑上的已更改文件,它们作为一个整体提交/推送,或者根本不提交。但就像在Git中一样,您可以立即将所有更改提交到本地工作区,或者您可以从第一次提交中排除某些更改并将其保留在一秒钟内。

在TFVC中,你通常会尝试提交一组修复错误的逻辑文件,达到一些目标等等。虽然单独签出/签入文件仍然可能,但你可能会高得多。实际上导致主存储库中的源以这种方式处于不一致状态。

至于你的第二个问题

根据您想要的距离,您可以设置Team Build以实际构建应用程序并在构建过程中从特定位置获取配置。这样,您就不必使用开发设置存储生产环境的配置。配置文件可能包含敏感信息,您可能不希望它们在源代码管理中,除了开发版本。

您还可以将配置文件存储在每个分支的特殊文件夹中,并确保每次合并它们时都会相应更新。

正如李提到的那样,你可以调查Config Transaformations。在构建过程中将一些XSLT应用于配置文件。这样,您可以在每个分支中存储多个配置文件,并在Visual Studio中选择“配置”将定义最终配置的外观。

请参阅: