我的代码中有以下声明,这些声明在 .net 框架 2.0 中运行良好,最近我将项目升级到框架 4.0 并且我收到构建错误说
“嵌入式语句不能是声明”
知道这里有什么问题吗?
const int sNoPrompt = 0x1;
const int sUseFileName = 0x2;
const Int32 sEmbedFonts = 0x10;
const int MultilingualSupport = 0x80;
我的代码中有以下声明,这些声明在 .net 框架 2.0 中运行良好,最近我将项目升级到框架 4.0 并且我收到构建错误说
“嵌入式语句不能是声明”
知道这里有什么问题吗?
const int sNoPrompt = 0x1;
const int sUseFileName = 0x2;
const Int32 sEmbedFonts = 0x10;
const int MultilingualSupport = 0x80;
我想通了,在声明的正上方有一个没有花括号的 IF 语句。导致错误的原因。我刚刚删除了 IF,因为在我的情况下没有必要。现在它工作正常。
该代码在框架 4.0 中运行良好,可能是您在其他代码行中遇到问题。
我使用以下代码之前工作正常。
if (output == "Success")
terminate();
Configuration config =
ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];
由于需求的变化,我注释掉了函数调用 terminate()
if (output == "Success")
//terminate();
Configuration config =
ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];
这会引发错误嵌入式语句不能是配置变量声明行中的声明或标记语句。并且在设置变量声明行中引发了另一个错误Use of unassigned local variable 'config' 。
由于 terminate() 被注释掉,它试图将下一条语句作为 if 条件块。
解决方案是注释掉 full if 条件块。
//if (output == "Success")
//terminate();
Configuration config =
ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];
另一种解决方案是根据需要放置花括号。
if (output == "Success")
{
//terminate();
Configuration config =
ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];
}