我们使用TeamCity的命令行构建运行器来调用bat文件.bat文件通过调用Visual Studio 2008的"devenv.exe"构建我们的解决方案,然后执行单元测试并创建正确的文件夹结构.
如果对devenv的调用失败并使TeamCity意识到构建失败,我们想要做的是停止执行bat文件.我们可以通过检查ErrorLevel(如果构建失败时为1)来捕获失败的devenv调用,并且我们可以在那时退出我们的bat文件.但是我们怎么能告诉TeamCity构建失败了呢?
这是我们尝试过的:
call "build.bat"
IF ERRORLEVEL 1 EXIT /B 1
Run Code Online (Sandbox Code Playgroud)
但是TeamCity无法识别我们的退出代码.相反,构建日志如下所示:
[08:52:12]: ========== Build: 28 succeeded or up-to-date, 1 failed, 0 skipped ==========
[08:52:13]: C:\_work\BuildAgent\work\bcd14331c8d63b39\Build>IF ERRORLEVEL 1 EXIT /B 1
[08:52:13]: Process exited with code 0
[08:52:13]: Publishing artifacts
[08:52:13]: [Publishing artifacts] Paths to publish: [build/install, teamcity-info.xml]
[08:52:13]: [Publishing artifacts] Artifacts path build/install not found
[08:52:13]: [Publishing artifacts] Publishing files
[08:52:13]: Build finished
Run Code Online (Sandbox Code Playgroud)
因此,TeamCity将报告构建成功.我们该如何解决这个问题?
解:
TeamCity提供了一种称为服务消息的机制,可用于处理这种情况.我已将构建脚本更新为如下所示:
IF %ERRORLEVEL% == 0 GOTO …
Run Code Online (Sandbox Code Playgroud) 我正在使用上面的Toolkit的Datepicker,但我想将它限制为仅限月份和年份,因为在这种情况下用户不知道或不关心确切的日期.显然,数据存储在Datetime中格式将存储日,但这与我无关.是否有一种简单的方法来解决这个问题?
谢谢
我们遇到了编码不良的SQL函数的问题(在现场工作正常,但在我们的测试环境中没有).此函数用于在许多表中提供默认值,尝试ALTER函数返回"无法更改###,因为它正被对象引用"错误.
有没有办法绕过这个错误信息?我能想到的唯一方法是尝试编写一个脚本,将其从每个默认情况下的表中删除,改变函数并在之后重新添加.
谢谢
有时我觉得Visual Studio 2010非常迟钝.我有一些插件,例如ReSharper,我认为可能是罪魁祸首.如果我能够在visual studio下看到进程来查看所有CPU的使用情况,那将是很好的.基本上我正在寻找的是一个任务管理器,就像谷歌Chrome中的那个,但是对于Visual Studio.我搜索了互联网并没有得到什么.
我在使用 GridView 作为 ListView 的视图时遇到问题,我想要做的是当用户从 Gridview 中的组合框中进行选择时触发一个事件,并在事件中传递所选项目。
谢谢
我刚刚完成了对文档存储解决方案的编码,我遇到了以下问题.在UI中,用户可以按下按钮打开文件:
try
{
Process.Start(file);
}
catch (Exception ex)
{
//Error handling code
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果用户没有与文件类型相关联的应用程序,则抛出componentmodel异常,并显示一条消息.
我宁愿做的是在那种情况下弹出"打开方式"对话框,是否有方法调用我不见了?
我有一个相对简单的WebApi网站,其中包含几个控制器,它们在OWIN中以AutoFac作为DI容器运行。
该站点仅使用属性路由进行设置,但即使遇到无效路由也始终返回200 OK响应。我们也有一些过滤器和一个运行的静态文件服务器,但是我已经注释掉了启动文件中的所有代码(所有IAppBuilder调用,甚至是HttpConfiguration的创建),但是我们仍然可以做到这一点。在IIS和IIS Express中都会发生这种情况。
我也曾尝试在其中添加默认路由,但看到的行为相同。
我已经读了一些书,并且了解到我可以在流水线中编写某种钩子,或者编写一个具有捕获所有路由和返回404的动作的控制器,但是感觉好像没有必要。
这是默认行为吗?
我已经看过这个答案了,但我们没有global.asax:ASP.NET Web Api在应返回404时返回200 OK
请参见下面的精简代码,该代码仍能说明问题
启动文件
[assembly: OwinStartup(typeof(Startup))]
namespace Api.blah
{
using Owin;
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
var container = this.GetAutofacContainer(config);
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
config.MapHttpAttributeRoutes();
app.UseWebApi(config);
}
private IContainer GetAutofacContainer(HttpConfiguration config)
{
ContainerBuilder containerBuilder = new ContainerBuilder();
containerBuilder.RegisterApiControllers(Assembly.GetExecutingAssembly());
return containerBuilder.Build();
}
}
}
Run Code Online (Sandbox Code Playgroud)
HealthController.cs
namespace Api.blah.Controller
{
[RoutePrefix("api/health")]
public class HealthController : ApiController
{
public HealthController()
{
}
[HttpGet]
[Route]
public …
Run Code Online (Sandbox Code Playgroud) c# ×3
asp.net ×1
combobox ×1
command-line ×1
constraints ×1
datepicker ×1
datetime ×1
file-io ×1
function ×1
gridview ×1
owin ×1
process ×1
routes ×1
selecteditem ×1
sql ×1
t-sql ×1
teamcity ×1
teamcity-5.1 ×1
url-routing ×1
wpf ×1
wpftoolkit ×1
xamarin ×1
xamarin.ios ×1