Struct中的UnmanagedType.ByValArray byte []赢得了x64中的编译

时间:2017-08-09 16:55:48

标签: c# visual-studio-2015 struct resharper c#-6.0

当前结构:

    [StructLayout(LayoutKind.Explicit, Size = 16, Pack = 8)]
    private struct SubStruct
    {
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
        [FieldOffset(0)]
        public byte[] Array;
        [FieldOffset(8)] public MockEnum MockEnum;
    }

这个简单存在于我的单元测试项目中的结构阻止了resharper在x64设置下运行它。我刚刚得到了“不确定,测试没有运行”#34;错误。

在x86中编译工作正常,如果我注释掉字节数组及其两个属性,我可以在x64中编译没问题。

因为某些原因[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]与x64相处不合适?

在VS2015,C#6.0,.Net 4.6.2,Resharper 2017.1.3

中运行它

更新: 在此设置上正常工作:VS2017,C#7.0,.net 4.5.2,Resharper 2017.1.3

必须是.net问题或Visual Studio 2015问题吗?

0 个答案:

没有答案