我正在尝试将 C# 应用程序的平台目标从 x86 更改为 Any CPU。我的应用程序使用 _click 方法运行一个新线程,该线程使用以下方法打开查看器窗口来显示窗口:
public void Show(string url, int entityId, string sessionId, int projId, string docId)
{
base.Show();
try
{
this.DocViewer.InitComm(url, entityId, sessionId, projId, docId);
}
catch (Exception ex)
{
Logger.Error("Error opening viewer", ex);
throw;
}
}
在 x86 平台上运行时,应用程序运行没有问题。我将平台更改为“任何 CPU”并收到“COMException 未处理”错误:“类未注册(来自 HRESULT 的异常:0X80040154(REGDB_E_CLASSNOTREG))”突出显示:
base.Show();
我已经研究了这个错误的原因,它似乎是由于注册表重定向。因为我使用的是 .NET 3.5,所以我无法使用我找到的许多解决方案,包括SO 上的这个线程中的一个。我不清楚这里的信息有什么帮助,因为许多代码链接都在 C++ 中。
如果有人能给我提供见解,我将不胜感激。