我的代码中有以下声明在.net框架工作2.0中正常工作,最近我将项目升级到框架工作4.0并且我得到了构建错误说
“嵌入式声明不能是声明”
知道这里有什么问题吗?
const int sNoPrompt = 0x1;
const int sUseFileName = 0x2;
const Int32 sEmbedFonts = 0x10;
const int MultilingualSupport = 0x80;
答案 0 :(得分:2)
代码在框架4.0中完美运行,可能在代码的其他行中存在问题。
答案 1 :(得分:2)
我明白了,声明正好在声明之上,没有花括号。 Whcih导致错误。我刚删除了IF,因为在我的情况下没有必要。现在它工作正常。
答案 2 :(得分: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"];
这会在配置变量声明行中抛出错误嵌入语句不能是声明或标记语句。并且抛出了另一个错误在设置变量声明行中使用未分配的局部变量'config'。
由于注释了terminate(),它会尝试将下一个语句作为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"];
}