我有一个应用程序,我希望有两个版本,一个版本将启用所有内容,在另一个版本中某些菜单项将被禁用。我尝试创建一个新的解决方案配置,其中某些菜单项被禁用。我的代码如下:
#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
如何在自定义解决方案配置中使用它?
答案 0 :(得分:1)
你的错误。 更好写:
#ifdef SMART
Download_Menu.IsEnabled = false;
ChangeLayout_Menu.IsEnabled = false;
#endif
了解更多here
答案 1 :(得分:1)
这是因为两种配置没有编译 相同的CPU类型。
是选择“Any CPU”还是32bit ou 64bit
答案 2 :(得分:0)
这是因为您创建的新preprocesor指令的项目配置错误。确保新预处理程序指令的解决方案配置和平台目标与您的调试配置匹配。 您面对错误的图像格式异常的一个实际示例是,在您的项目中,您可能指的是使用32位(x86)配置构建的程序集,并且您的项目可能是使用64位(x64)构建的,因此在此项目中尝试加载引用的类型(即64位程序集试图加载32位程序集),这将导致badimage格式异常。