问题标签 [fusion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
18122 浏览

filter - 传感器融合卡尔曼滤波器

我很感兴趣,如何对卡尔曼滤波器中的传感器融合设置中的双输入进行建模?

例如,假设您有一个加速度计和一个陀螺仪,并且想要呈现“水平高度”,就像在飞机上一样,这里有一个很好的演示。

您如何实际收获两个传感器的正属性并最小化负属性?

这是否在观察模型矩阵中建模(通常用大写 H 表示)?


备注:在math.stackexchange.com上也有人问过这个问题,但没有任何答案

0 投票
2 回答
1733 浏览

.net - 以编程方式查找完全限定的 .NET 程序集名称(从简单名称,对于给定的 .NET 版本)?

我的目标是从纯 C++ 本机 Windows API 级程序(非托管 C++ 或 C++/CLI)显示 .NET Windows 窗体消息框。

也就是说,出于学习目的,我想用纯 C++ 实现下面评论中显示的 C# 代码:

计划是,加载程序集后,继续进行MessageBox类和调用Show。但这可能是一种错误的做法。因此,我同样很高兴得到一个答案,它显示了如何在没有找到程序集的完全限定名称的情况下做到这一点(当然,没有对完全限定名称进行硬编码!)。

gacutil实用程序显然能够找到完全限定的名称:

但是,如前所述,我不想硬编码任何内容:C++ 代码中硬编码的 .NET 信息不应超过顶部注释中显示的 C# 源代码中的内容,以及支持的最低 .NET 版本。

TIA.,

0 投票
1 回答
2624 浏览

.net - 程序集绑定错误 - 融合日志和依赖浏览器不匹配

我正在追查最近弹出的程序集加载/绑定错误。在我的调查中,我发现了一个令人困惑的矛盾(假设我正确解析了融合日志)。

我的应用程序在启动时抛出的异常状态:

{“无法加载文件或程序集 'Microsoft.Practices.CompositeUI, Version=1.0.51205.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自异常HRESULT: 0x80131040)":"Microsoft.Practices.CompositeUI,版本=1.0.51205.0,文化=中性,PublicKeyToken=31bf3856ad364e35"}

我最近所做的一些项目更改不应该需要强命名程序集“Microsoft.Practices.CompositeUI”。在确认我所有的解决方案项目确实引用了未签名的程序集之后,我启动了一个依赖浏览器以确保我没有遗漏任何东西。一切都检查过了,我确认我没有对旧程序集的任何“旧”引用。当然,我也清理并重建了我的项目。

然后我进一步研究并启动了融合日志查看器 (Fuslogvw.exe) 并将其配置为显示绑定错误。我查看了日志,发现绑定错误。详细日志是混乱开始的地方;它将“调用程序集”列为对缺少的程序集没有绑定(我可以确定)的程序集。啊,很难解释。这是日志:

*组装活页夹日志条目(11/15/2010 @ 7:00:18 PM)*

操作失败。

绑定结果:hr = 0x80131040。没有可用的描述。

从以下位置加载的程序集管理器:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 在可执行文件 C:\Program Files\PMT\Office App\1.1.1.7\OfficeApp.exe 下运行

--- 详细的错误日志如下。

=== 预绑定状态信息 ===

日志:用户 = PMD\sklett

LOG:DisplayName = Microsoft.Practices.CompositeUI,Version=1.0.51205.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35(完全指定)

日志:Appbase = file:///C:/Program Files/PMT/Office App/1.1.1.7/

日志:初始 PrivatePath = NULL

日志:动态基础 = NULL

日志:缓存基础 = NULL

日志:AppName = OfficeApp.exe

调用程序集:Microsoft.Practices.EnterpriseLibrary.Common,Version=4.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35。

===

LOG:此绑定在默认加载上下文中开始。

LOG:使用应用程序配置文件:C:\Program Files\PMT\Office App\1.1.1.7\OfficeApp.exe.config

LOG:使用 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config 中的机器配置文件。

日志:政策后参考:Microsoft.Practices.CompositeUI,版本=1.0.51205.0,文化=中性,PublicKeyToken=31bf3856ad364e35

日志:GAC 查找不成功。

日志:正在尝试下载新的 URL 文件:///C:/Program Files/PMT/Office App/1.1.1.7/Microsoft.Practices.CompositeUI.DLL。

LOG:程序集下载成功。尝试设置文件:C:\Program Files\PMT\Office App\1.1.1.7\Microsoft.Practices.CompositeUI.dll

LOG:进入从源代码运行设置阶段。

日志:程序集名称为:Microsoft.Practices.CompositeUI,版本=1.0.51205.0,文化=中性,PublicKeyToken=null

警告:比较程序集名称导致不匹配:PUBLIC KEY TOKEN

ERR:程序集引用与找到的程序集定义不匹配。

ERR:无法完成程序集的设置(hr = 0x80131040)。探测终止。

现在调用程序集“Microsoft.Practices.EnterpriseLibrary.Common”没有任何列出的(通过依赖项浏览器)对“Microsoft.Practices.CompositeUI”的依赖项。不仅如此,而且应该没有。

融合日志阻止了我的前进,融合日志导致了混乱!;0)

希望我为一些明智的专家提供了足够的信息,让我了解我所缺少的东西。

0 投票
2 回答
1092 浏览

.net - 为多个可执行文件配置一次 assemblyBinding

我有一个包含多个可执行文件的文件夹。目前在每个executable.exe.config文件中都配置了程序集绑定重定向。有没有办法只配置一次,该文件夹中的所有可执行文件都会自动选择它?我想避免 machine.config 因为这会将它应用于整个计算机。

0 投票
2 回答
688 浏览

c# - IntPtr.ToInt32() Marshal.ThrowExceptionForHR() - 查询 GAC

我一直在使用我在网上找到的一些代码来使用 fusion.dll 查询 GAC,但是我最近收到了一些错误报告,抱怨 OverflowException。

有问题的代码是当它试图将 IntPtr 转换为 Int32 而实际上它是 Int64 时,但问题是 Marshal.ThrowExceptionForHR 只接受 Int32,所以我有点不知道该怎么做。目前我只是在处理异常,但我想知道正确的方法是什么?

马龙

0 投票
1 回答
5354 浏览

c# - 解决装配未找到 | FileNotFoundException | 融合日志

我正在尝试将我的解决方案包 (wsp) 部署到 SharePoint 2007 环境。WSP 包含一个功能,该功能加载功能接收器类以在运行时部署计时器作业。

在部署这个 WSP 时,我一直在

无法安装功能“fb631f6c-2c46-4ab5-b7b3-f3d0c949c5f0”,因为加载事件接收器程序集“XXX,版本=1.0.0.0,文化=中性,PublicKeyToken=bad6857072694970”失败:System.IO.FileNotFoundException

我已经仔细检查了所有内容(公钥令牌、程序集名称等)是否正确。我过去部署了许多 WSP,我很困惑为什么这个失败了。

为了调试这个,我正在使用程序集绑定日志查看器。我选择了“登录异常文本”并给出了自定义日志路径。我也没有收到任何日志消息,并且异常文本始终给出此消息:

警告:程序集绑定日志记录已关闭。要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。注意:与程序集绑定失败日志记录相关的一些性能损失。要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

任何想法为什么会发生这种情况?如何启用程序集绑定日志查看?

0 投票
1 回答
154 浏览

iis-6 - 托管 Fusion IIS 6 缓存 500 错误

我正在运行一个使用 Managed Fusion 将第三方站点反向代理到子目录的站点。现在有好几次第三方网站出现故障并出现 500 错误。这本身不是问题,但是,IIS 似乎正在缓存 500 错误,因此即使第三方站点已备份,通过反向代理查看站点仍然会出现错误。我发现解决此问题的唯一方法是重新启动 WWW 服务。有什么方法可以在不损害我网站性能的情况下防止这种缓存?

0 投票
2 回答
1752 浏览

.net - SharePoint's OWSTIMER service keeping references to feature receiver assemblies

With SharePoint you can use a Feature Receiver to perform some actions when a feature is installed/uninstalled etc.

The feature receiver is ran from the OWSTIMER service and the process seems to be roughly

  • .wsp (a cab file) is unpacked and examined
  • .dll's are moved to bin/gac
  • feature receivers marked in manifest are called (can only be in GAC) by the service

However OWSTIMER keeps a handle open on the dll containing the feature receiver.

This means that when you uninstall the feature Fusion will move the dll to the c:\windows\temp\ directory and still keep the reference. (More details here and here)

When you then try and install the new version (assembly file version different but assembly version has to remain the same) OWSTIMER will run the OLD feature receiver.

You can stop this occurring with a restart of the OWSTIMER service but this is not practical on a production farm environment where there may be many web servers.

Anyone know of any workarounds?

0 投票
1 回答
211 浏览

winforms - 如果没有安装 .NET 2,是否可以编译 .NET 2 WinForms 应用程序以在 .NET 4 上运行?

最近我收到一个客户投诉,说我编写的一个小型 .NET 2.0 应用程序没有在他的 Windows 7 计算机上运行。

查了一下,发现他的机器上没有文件夹c:\Windows\Microsoft.NET\Framework\v2.0.50727,只有V4.0的文件夹。

我不知道这样的星座甚至是可能的。

我的问题:

如果在客户端计算机上找不到 .NET 2 运行时,是否可以以某种方式指示我的应用程序使用 .NET 4 运行时?

0 投票
1 回答
500 浏览

.net - 程序集版本加载问题和 SQL CE

我有一个使用 SQL CE 3.5 和 .NET 3.5 的实体框架的应用程序。

我们遇到了导致应用程序崩溃的 SQL CE 3.5 SP2 RTM 的已知问题。结果,我们获得了明显解决该问题的累积更新 2。

由于我们通过 XCopy 将 SQL CE 部署到我们的应用程序中,因此我们假设简单地用 CU2 版本替换本地托管和非托管 DLL 就可以解决问题。

如果 SQL CE 已提前安装在机器上(因此在 GAC 中),我们的应用程序会忽略较新版本的程序集和 DLL,并从 GAC 加载旧的、损坏的版本。

我们确定卸载 SQL CE(因此将其从 GAC 中删除)或更新 GAC 的程序集允许我们的应用程序使用正确的版本。

有没有更好的办法?我已经尝试过 Assembly.LoadFile,但这似乎不起作用。(两个版本都已加载,但旧版本是实际使用的版本。)