CLR Class 库在 Win32 中是否必须是 运行?
Does a CLR Class Library have to be run in Win32?
我在 VS2017 中创建了一个 CLR 项目。
包括:
- CLR Class 库(C++) .NET Framework 4.5
- C# 控制台应用程序
库中定义了一个简单的引用 class。
class 是从我的 C# 代码中调用的。
我对它的性能很好,但它并不总是有效。
要看我怎么运行了。
- "Debug" 和 "x86" 有效
- "Debug" 和 "x64" 不起作用
- "Release" 和 "x86" 有效
- "Release" 和 "x64" 不起作用
所以在 Debug 和 Release 中只有当 CLR Class Library 在 Win32 中是 运行 时它才有效。
是我弄错了还是这是有意为之的行为?
提前致谢!
通常使用 C++/CLI 语言的目的(我假设这就是您所说 "CLR Library" 的意思)是同时使用本机和 .Net 对象。由于本机代码,二进制库绑定到 32 位或 64 位平台。显然,在您的情况下,这是 32 位 (x86)。
回答我的问题。
Hans Passant 写道:
Changing the solution platform only affects the C++/CLI project, not the C# project. Right-click the C# project > Properties > Build tab to select the jitter you want to use. Untick the "Prefer 32-bit" checkbox for the x64 solution configuration. Again for the Release configuration.
当我取消选中 C# 项目属性中“构建”部分下的 "Prefer 32-bit" 时,它起作用了。
谢谢!
我在 VS2017 中创建了一个 CLR 项目。
包括:
- CLR Class 库(C++) .NET Framework 4.5
- C# 控制台应用程序
库中定义了一个简单的引用 class。 class 是从我的 C# 代码中调用的。 我对它的性能很好,但它并不总是有效。
要看我怎么运行了。
- "Debug" 和 "x86" 有效
- "Debug" 和 "x64" 不起作用
- "Release" 和 "x86" 有效
- "Release" 和 "x64" 不起作用
所以在 Debug 和 Release 中只有当 CLR Class Library 在 Win32 中是 运行 时它才有效。
是我弄错了还是这是有意为之的行为?
提前致谢!
通常使用 C++/CLI 语言的目的(我假设这就是您所说 "CLR Library" 的意思)是同时使用本机和 .Net 对象。由于本机代码,二进制库绑定到 32 位或 64 位平台。显然,在您的情况下,这是 32 位 (x86)。
回答我的问题。
Hans Passant 写道:
Changing the solution platform only affects the C++/CLI project, not the C# project. Right-click the C# project > Properties > Build tab to select the jitter you want to use. Untick the "Prefer 32-bit" checkbox for the x64 solution configuration. Again for the Release configuration.
当我取消选中 C# 项目属性中“构建”部分下的 "Prefer 32-bit" 时,它起作用了。 谢谢!