Est*_*nes 1 .net compiler-construction datetime
这是场景:
存储在 SVN 中的 AC# Windows 应用程序项目用于创建可执行文件。通常,构建服务器处理构建过程并定期创建供测试使用的构建。在这个特定的实例中,我被要求修改特定的构建并创建可执行文件。
我不完全确定构建服务器是否修改了项目文件,但我知道它会在用于编译可执行文件的源代码的 SVN 中创建一个标记。使用该标签,我在第二台机器(开发机器)上检查了代码。然后我在开发机器上编译了源代码。
执行时,在开发计算机上编译的应用程序的功能与构建服务器编译的应用程序的功能并不完全相同。例如,在测试机器上,应用程序检测到 DateTime Parse 执行。但是,构建机器的可执行文件不会抛出任何异常。如果我在开发计算机上运行可执行文件,则不会引发异常。
总而言之,两台机器理论上都使用相同的源代码和项目。
开发机器的可执行文件只能在开发机器上运行。构建机器的可执行文件适用于每台机器,包括开发机器。
计算机的区域设置或时区是否存储在编译的可执行文件中?知道什么可能导致此行为或如何检查可执行文件以找到可能的差异并纠正它们?
不幸的是,我无法使用测试机并为其附加调试器。只要我能,我就会的。
该应用程序使用其运行的计算机的区域设置,看起来这是您的问题。您可以通过将 System.Threading.Thread.CurrentThread.CurrentCulture 和 System.Threading.Thread.CurrentThread.CurrentUICulture 设置为特定值来强制线程使用特定区域性。
| 归档时间: | 
 | 
| 查看次数: | 938 次 | 
| 最近记录: |