我有一个使用Visual Studio 2012编写的Web应用程序,目标是.Net 4.5,并且历史上已经通过构建解决方案手动部署,压缩然后ftp到生产服务器上。
我希望自动化这个部署,所以我有一个构建服务器来托管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
答案 0 :(得分: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
“货物崇拜节目”给我。相反,我建议你在导致问题的构建机器上进行调试,并准确地追踪正在发生的事情 - 你确定你没有在代码中查找错误的位置吗?
答案 1 :(得分:0)
我必须将构建服务器上的区域设置更改为与本地计算机相同。