小编Jus*_*nP8的帖子

Team City针对多阶段部署的最佳实践是什么?

我们有3个环境:

  • 开发: Team City在这里部署Subversion在trunk上的提交.
  • 暂存:用户接受在此处完成,对于作为候选版本的构建.
  • 生产:当UAT通过时,会在此处部署传递代码集.

我们正在使用Team City,并且只对我们的开发环境进行持续集成设置.我不想为Team City所做的每个开发部署保存工件.我希望指定的人能够触发构建配置,将部署成功的开发部署到我们的登台服务器.

然后,我希望每个登台部署都能保存工件.当暂存部署通过UAT时,我想将该包部署到Production.

我不确定如何在Team City中进行设置.我正在使用6.5.4版本,我知道有一个"推广..."动作/触发器,但我认为这取决于保存的工件.我不希望每次都将开发部署保存为工件,但我确实希望运行登台部署的人能够指定要部署到登台的成功开发部署.

我知道可能有多种方法可以做到这一点,有最好的做法吗?您的设置是什么?为什么推荐它?

更新:

到目前为止我有一个答案,这是我们内部考虑的一个想法.我真的很想知道,如果任何人有部署到通过团队市本身,暂存/生产environemnt其中只有某些角色/许可人可以运行部署脚本来生产,而不必手动处理任何一个有点自动化的方式一种神器包.任何人?

更新2

我仍然有1天奖励赏金,我认为下面的答案没有回答我的问题,但重读后我发现我的问题不是我想的那样.

有没有办法使用Team City进行某种自动部署到临时/生产环境?

deployment teamcity continuous-integration

30
推荐指数
2
解决办法
7886
查看次数

是否有T-SQL命令检查同义词所引用的对象是否存在且有效?

我正在尝试使用下面的SQL批处理脚本测试数据库中的所有同义词是否引用有效对象,作为我们数据库清理工作的一部分.此脚本只对同义词执行查询,并打印出遇到的任何错误.这适用于视图和表,但不适用于sprocs.

SET NOCOUNT ON

DECLARE @currentId INT;
DECLARE @currentSynonym VARCHAR(255);

SELECT @currentId = MIN(id) FROM sysobjects WITH (NOLOCK) WHERE [xtype]='SN';

WHILE @currentId IS NOT NULL
BEGIN
    SELECT TOP(1) @currentSynonym = name FROM sysobjects WITH (NOLOCK) WHERE id = @currentId;

    PRINT '';
    PRINT '------------------------------------------------------------';
    PRINT @currentSynonym;
    PRINT '------------------------------------------------------------';

    BEGIN TRY
    EXEC('SELECT Top(1) NULL FROM ' + @currentSynonym + ' WITH (NOLOCK);');
        PRINT 'Synonym is valid.';
    END TRY
    BEGIN CATCH 
        PRINT ERROR_MESSAGE();
    END CATCH

    SELECT @currentId = MIN(id) FROM sysobjects WITH (NOLOCK) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server synonym

8
推荐指数
2
解决办法
1万
查看次数

使用Team City快照依赖项时,您使用快照的后期构建文件还是仅使用SVN修订号?

我在一个项目中有2个构建配置:

  • 构建和测试代码
  • 部署代码

我希望只有在构建和测试代码成功构建时才运行Deploy Code,因此我设置了快照依赖项.

快照依赖性是否意味着Deploy Code将检出与Build&Test Code相同的SVN修订版,然后针对该checkout运行NAnt脚本,该脚本不包含编译器生成的构建后文件?或者,部署代码中的构建和测试代码的快照依赖性是否意味着NAnt将针对构建代理上的构建和测试代码的构建后工作目录文件运行?

更新:

似乎我将快照依赖于Build and Test Code for Deploy Code并且我已经构建了Build&Test Code的最新版本,我的NAnt脚本将为构建和测试代码构建部署后期构建文件.

我仍然想确认我理解这个概念,因为我不太了解Team City文档.我想我应该确保Deploy Code在与构建和测试代码相同的构建代理上运行,否则我可能遇到Deploy Code检出SVN版本然后只部署预构建代码文件的情况.它是否正确?

我的困惑主要是因为您似乎必须为部署代码设置VCS.那是因为它需要将修订版号与快照依赖关系进行比较吗?

asp.net teamcity continuous-integration

7
推荐指数
2
解决办法
2227
查看次数

自创的NuGet包应该放在版本控制中吗?

我已经开始为我们在ASP.NET解决方案中使用svn:externals的一些频繁的依赖项目创建NuGet包.我将.nupkg文件托管在网络文件夹中,并将该文件夹位置用作NuGet提要.

我不确定在版本控制中放置哪些文件以及放在哪里.你把.nuspec和.nupkg文件放在你的存储库中了吗?同时将.nuspec和.nupkg文件放入项目的版本控制中吗?我想因为.nuspec文件生成.nupkg文件,所以你只需要在版本控制中使用该文件.但是,我也认为制作网络文件夹可能是一个好主意,我将其用作NuGet提要,本身就是一个回购.然后我可以版本控制.nupkg文件.

版本控制创建的NuGet包有哪些好的做法?

version-control nuget

7
推荐指数
1
解决办法
1385
查看次数

将代码从Subversion存储库部署到Web服务器而不构建

在我的公司,我们将ASP.NET应用程序开发为网站,并且通常仅使用我们的网络驱动器,它直接指向我们的开发Web服务器上的文件.我们的代码是在HTML请求时编译的,因此我们不构建我们的Web应用程序.我已经读到自动构建是一种最佳实践,并且旨在在某些时候设置它.现在我们正在使用VSS,这很糟糕,我想把我们转变为颠覆.

我已经阅读了关于构建和部署的NAnt,并且刚刚听说过CruiseControl.NET.当开发人员从工作副本中提交更改时,我是否可以简单地使用这些工具将代码从SVN存储库推送到我们的开发Web服务器?

svn asp.net cruisecontrol.net nant

5
推荐指数
1
解决办法
1199
查看次数

从另一个ASP.NET应用程序保持相关ASP.NET应用程序的会话处于活动状态

我有2个应用程序在同一个域上运行.流程如下:

  1. 申请1
  2. 申请1 - > 申请2
  3. 申请2 - > 申请1

应用程序1是WebForms(asp.net framework 2.0),Application 2是ASP.NET MVC 3(框架4.0)

当用户在应用程序2上时,我想在应用程序1上保持会话活动.

在构建应用程序1时,我们构建了一个"KeepSessionAlive.ashx"处理程序,它只在请求时执行Session("KeepSesssionAlive")= DateTime.Now(),如本文所述.我们这样做是因为这是一个评估应用程序,在测试的一些较难的部分,用户可能需要很长时间才能选择答案.这是代码:

Public Class KeepSessionAlive : Implements IHttpHandler, IRequiresSessionState  

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        context.Session("KeepSessionAlive") = DateTime.Now                           
    End Sub

    Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property   

End Class
Run Code Online (Sandbox Code Playgroud)

然后,我只是在Application 1使用jQuery中定期调用此处理程序: $.post("KeepSessionAlive.ashx", null, function() { });

所以,我想我可以使用$ .ajax()从Application 2 …

asp.net asp.net-mvc session jquery cross-application

5
推荐指数
1
解决办法
4100
查看次数

如何将SQL ELMAH_Error.ErrorID附加到ELMAH错误电子邮件主题?

我正在使用ELMAH将错误记录到SQL数据库并发送电子邮件.我想将ELMAH_Error.ErrorId附加到ELMAH电子邮件的主题中.

我正在将ElmahLog_Logged事件中的ErrorId ELMAH保存到会话变量中,正如我在此问题中发现的那样.Atif Aziz自己在这篇博文中评论了以下关于此的信息:

如果在邮件发送期间确实想要在记录的错误处获得破解,则必须在ErrorLogModule.Logged事件中将其拾取.这可能很方便,例如,将记录的错误的Id推送到邮件中.为此,您将Id从Logged事件中隐藏到HttpContext中,稍后在Mailing事件中使用它.为此,模块将被注册,以便在Logged事件之后发生Mailing事件.

我认为,因为httpModules首先添加了ErrorLog而第二个是ErrorMail,所以这将实现在Logged事件之后注册Mailing事件.我想这是在谈论事件的顺序,而不是模块应用的顺序.

你如何注册HttpModules的事件顺序?

我试过下面的代码无济于事.下面的代码阻止电子邮件发送,但错误仍记录到SQL表中.

Web.Config中:

<system.web>
    <httpModules>
        <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
        <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
        <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />
    </httpModules>
    <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
    </httpHandlers>
</system.web>
Run Code Online (Sandbox Code Playgroud)

......而且......

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
        <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
        <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
        <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
    <handlers>
        <add name="Elmah" path="elmah.axd" verb="POST,GET,HEAD" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
    </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

当然,并且配置正确(我通过NuGet安装).

的Global.asax.cs:

protected void …
Run Code Online (Sandbox Code Playgroud)

c# asp.net elmah event-handling httpmodule

4
推荐指数
1
解决办法
1489
查看次数

Subversion和ASP.NET网站项目的Bin文件夹

我们正在从VSS转向Subversion,我们在Subversion Repo上有一个网站项目.我们删除了Bin文件夹,因为它导致各种混乱的树冲突,因为我们的开发解决方案包含一些网站项目所依赖的类库项目(在我们的解决方案中设置为项目引用).我们在网站的Bin文件夹中也有几个第三方库DLL.

我们项目的下一阶段涉及设计师修改我们网站的主题.我希望他能够在VS 2005中打开网站项目,在他的工作副本上修改他需要的CSS文件,并在他的localhost上测试他的文件.他需要最新的DLL文件才能让他能够做到这一点.

有没有将Bin文件夹DLL添加到subversion,并配置TortoiseSVN或subversion,以便我们可以提交我们最新的DLL(开发人员的解决方案文件中的项目依赖项),但在更新时忽略它们(我估计每个客户端)?将我们的第三方网站依赖于Subversion也很方便.

svn asp.net tortoisesvn asp.net-2.0

3
推荐指数
1
解决办法
1750
查看次数

是否有一个jQuery插件可以动态制作图像的缩略图?

有没有人知道一个jquery插件,可以制作在另一个站点(Flickr/Picasa/SmugMug /等)托管的图像的缩略图?我试图使用Galleria,但不太喜欢它.它有能力动态制作缩略图,所以我知道它是可能的.

我想做的是为我的画廊使用Colorbox幻灯片,但如果我不需要,我宁愿不必制作所有图像的缩略图.我认为通常的做法不是吗?我以前从未真正在网站上建立一个画廊,但我认为制作缩略图通常是我能说的过程的一部分.

我想我可以对Galleria进行逆向工程,但我不是javascript/jQuery专家.我可能是个中间人.我希望其他人已经为我做过......

jquery thumbnails image-gallery jquery-plugins

1
推荐指数
1
解决办法
1024
查看次数