我正在使用VS2015使用Windows窗体的UserControls处理项目。 我最后一次使用控件一切正常,它根本没有显示错误。但是,重新启动VS后,工具箱无法显示控件。
当我开始将控件添加到其他表单时,它会显示错误:
创建组件 ctrlObjectEditor 时出错。
错误消息:System.TypeInitializationException
" 项目的Typeinitializer .Log.LoggerHost"提出了一个例外。
... (仅粗略翻译)
当我运行程序时,它工作正常,但我无法在工具箱中编辑它。
控件都在同一个程序集中。 我找到了其他问题,但它们似乎对我不起作用。 (例如AnyCPU,x64,x86,从控件中删除Logger)
有没有人知道可能出现什么问题?
答案 0 :(得分:0)
我似乎找到了答案。
Class FileLogger有一个静态参数,其值为:
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
似乎这个方法在设计师运行时会导致异常,因此我将其替换为:
try
{
var dir = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location);
return Path.Combine(dir, "Logs");
}
catch (ArgumentException)
{
return "C:\\Logs";
}
这似乎有效。