0

我有一个应用程序,我想要两个版本,一个版本将启用所有功能,在另一个版本中,某些菜单项将被禁用。我尝试创建一个新的解决方案配置,其中某些菜单项被禁用。我的代码如下:

#if (SMART == true)
        Download_Menu.IsEnabled = false;
        ChangeLayout_Menu.IsEnabled = false;
#endif

然而,这破坏了程序。

给定错误:

WindowsBase.dll 中出现“System.BadImageFormatException”类型的未处理异常附加信息:无法加载文件或程序集“VirtiumStorAPIWindowsManaged,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。试图加载格式不正确的程序

这是我第一次尝试这个,所以任何建议都会很棒。

因此,如果我使用以下代码,它可以在调试模式下工作:

#if DEBUG
        Download_Menu.IsEnabled = false;
        ChangeLayout_Menu.IsEnabled = false;
#endif

我如何在自定义解决方案配置中使用它?

4

3 回答 3

1

那是因为这两种配置没有编译相同的 CPU 类型

选择“Any CPU”还是 32bit 或 64bit

于 2013-06-18T16:49:23.970 回答
1

你有问题。最好写:

#ifdef SMART
        Download_Menu.IsEnabled = false;
        ChangeLayout_Menu.IsEnabled = false;
#endif

在这里阅读更多

以及MSDN Preprocessor Directives库站点。

于 2013-06-18T16:47:06.740 回答
0

It happens because your project configuration is wrong for the new preprocesor directive that you create. Make sure the solution configuration and platform target for the new preprocesor directive matches with your debug configuration. One practical example why you face the bad image format exception is that in your project you might be referring a assembly which is built with 32 bit (x86) configuration and your project might be getting built with 64 bit (x64), so when this project tries to load the referenced type (i.e 64 bit assembly trying to load 32 bit assembly) it will cause badimage format exception.

于 2013-06-18T17:56:20.490 回答