c# - 如果我的代码是为 x86 或任何 CPU 编译的,我的代码如何在运行时检测到

标签 c# visual-studio-2010 unit-testing nunit

我有很多从文件中读取预期结果的集成测试。我的测试通过相对路径访问这些文件。 x86 与 Any CPU 的相对路径深度不同。例如,当我的测试在 x86 下运行时,它们需要读取以下文件“../../TestResults/MyTest.csv”,但在任何 CPU 下它们需要访问“../TestResults/MyTest.csv”

到目前为止,我在每个测试夹具中都有以下常量:

   private const string platformDependentPrefix = "";

如果我为 x86 运行测试,我需要在每个测试夹具中手动将“”更改为“../”。

有没有办法让它自动化?

最佳答案

非常 hacky 的方式,但有效:

public static string Platform
{
    get 
    {
        if (IntPtr.Size == 8)
            return "x64";
        else
            return "x86";
    }
}

您还可以访问 CSharpProjectConfigurationProperties3.PlatformTarget属性(property)。

关于c# - 如果我的代码是为 x86 或任何 CPU 编译的,我的代码如何在运行时检测到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6587767/

相关文章:

python - 如何模拟 python dict __str__ 方法?

c# - 用 MahApps.Metro 无边框窗口的菜单替换窗口标题

c# - 在 C# 中对 gridview 进行复杂编辑

.net - 更好的资源文件值工具提示格式?

c++ - OpenCV:System.Runtime.InteropServices.SEHException

linux - 如何在unix中获取数字记录和文件大小

node.js - 使用 NodeJS 通过 OAuth 对 MobileFirst Platform Java 适配器进行单元测试

c# - 在 MVC4 和类库之间共享 session 的最佳方式

c# - Telegram API(不是 Bot!): How to get chat/channel ID by link to it?

c# - 如何使用自定义属性为 C# 自动属性提供默认值?