是否可以采用现有的.NET程序集,将其编译为x86或x64,并使用相同的API创建另一个程序集,但编译为AnyCPU?新程序集将永远不会实际执行;它将仅用作编译时参考。
我有一个用C ++ / CLI编写的.NET程序集。我将其放入nuget包中,使用nuget的runtimes
和ref
文件夹处理32位和64位问题。通常,ref
文件夹中的程序集被编译为AnyCPU,但这不是C ++程序集的选项。现在,我已经在ref文件夹中获得了32位版本的副本,但是当包含在x64项目中时会引起警告:
正在构建的项目“ AMD64”的处理器体系结构与引用“ c:... \ myassembly.dll”“ x86”的处理器体系结构之间不匹配。
我意识到这不会在运行时引起任何问题,但是我想尽可能避免发出警告。如果是用C#或VB编写的,则可以使用CorFlags将其转换为AnyCPU程序集,但是该技巧不适用于C ++程序集。当我在32位C ++程序集上设置ILONLY
标志时,Visual Studio不再能够完全加载该程序集。
所以有人可以建议如何创建该程序集的版本,该版本适合用作nuget包中的编译时参考吗?