0

我有一个使用 Visual Studio 2012 编写的针对 .Net 4.5 的 Web 应用程序,从历史上看,它是通过构建解决方案、压缩然后 ftp'​​d 到生产服务器上手动部署的。

我希望自动执行此部署,因此我有一个托管 Jenkins CI 的构建服务器,我使用它使用 MSBuild.exe 构建源代码,然后运行 ​​NUnit 测试。

当我在本地运行我的构建脚本时,它工作得很好并且所有测试都通过了。但是,当我在构建服务器上运行脚本时(没有安装 Visual Studio,但有 SDK)构建成功,但是一些单元测试失败。

我调查了这些故障,结果发现出现了一些奇怪的问题,例如日期格式不起作用。

myRequest.Date = new DateTime(1970, 2, 1)
...
myRequest.Date.ToString("dd-MM-yyyy"));

在我的本地机器上,这可以正常工作并将日期格式化为01-02-1970。但是在构建机器上,测试失败,因为日期格式为02-01-1970

4

2 回答 2

0

我必须将构建服务器上的区域设置更改为与本地计算机相同。

于 2013-05-22T13:42:54.193 回答
0

您已经明确指定了订单日-月-年,所以我不相信您会得到您所说的结果。例如。以下所有文化都会给出相同的结果,“01-02-1970”:

string usDate = date.ToString("dd-MM-yyyy", new CultureInfo("en-US"));
string deDate = date.ToString("dd-MM-yyyy", new CultureInfo("de-DE"));
string gbDate = date.ToString("dd-MM-yyyy", new CultureInfo("en-GB"));

对我来说,改变区域设置或CurrentCulture“货物狂热编程”的味道。相反,我建议您在导致问题的构建机器上进行调试并准确跟踪正在发生的事情 - 您确定您没有查看代码中的错误位置吗?

于 2013-05-22T13:16:29.550 回答