0

.Net 4.5 をターゲットとする Visual Studio 2012 を使用して記述された Web アプリケーションを持っています。これまでは、ソリューションを構築し、圧縮してから運用サーバーに 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としてフォーマットされているため、テストは失敗します。

4

2 に答える 2

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 に答える