标签: fusion

Fusion:找不到匹配的原生图像

我已经通过新的MSI版本安装了Windows服务.但是服务只是在没有解释的情况下停止之前完成了构造函数.我在融合日志中得到以下内容:

*** Assembly Binder Log Entry  (2013-07-17 @ 12:48:29) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  C:\Program Files\SoW\Market Communicator\Company.Market.Communicator.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: User = SoW\kasper
LOG: DisplayName = Company.Market.Administration, Version=1.3.0.49, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files/SoW/Market Communicator/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL …
Run Code Online (Sandbox Code Playgroud)

c# fusion

5
推荐指数
0
解决办法
883
查看次数

Fusion Log Assembly Binder Error - 绑定结果:hr = 0x1.功能不正确

我试图在一台机器上找到一个奇怪行为的底部.我有一个简单的控制台应用程序,它将以交互方式运行,但是当我通过WMI调用它时,它将立即启动并退出.

我启用了Fusion日志,因为Procmon没有发布.我看到以下错误:

*** Assembly Binder Log Entry (31-01-2015 @ 19:22:51) *** 

The operation was successful. 
Bind result: hr = 0x1. Incorrect function. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\CMCBOOTSTRAP\Cmc.Installer.Agent.Console.exe 
--- A detailed error log follows. 

BEGIN : Native image bind. 
END : Incorrect function. (Exception from HRESULT: 0x00000001 (S_FALSE))
Run Code Online (Sandbox Code Playgroud)

"功能不正常"的原因是什么?我还能看到什么来确定此应用程序通过WMI在启动时有效死亡的原因?

我的意思是微不足道的 ......

class Program
{
    static void Main(string[] args)
    {
        Thread.Sleep(30000);
    }
}
Run Code Online (Sandbox Code Playgroud)

环境是Windows Server 2012 R2和.NET 4.5.

.net c# wmi fusion

5
推荐指数
1
解决办法
4151
查看次数

创建或寻找 fuslogvw.exe 的替代品,又名 Fusion Assembly Binding Log Viewer

程序集绑定日志查看器有很多错误(例如,它通常不会清空日志)并且功能相当缺乏(搜索、排序、过滤几乎都可用)。

所以我想知道是否

  • 存在现有的替代方案
  • 在全球范围内挂钩 assemblyresolve 事件是可能的,所以我可以自己做这件事
  • 微软已经在某处发布了源代码,我们可以分叉它

如果没有第二个选项,我知道您可以相对简单地创建 CLR Host 实现(尽管并非平凡),但如果您需要的只是比现有 Fusion 日志查看器更细粒度的控制,那么它似乎有点过大了。

请注意,我已经看到了这个答案,但这似乎并没有回答这个问题。


回复一些评论:

我知道程序集重定向、事件AssemblyResolveAssemblyLoad事件,但第一个只能用作最后的手段(探测链中的最后一个),第二个只会在加载程序集后触发。两者都不能用于除您自己的进程之外的其他进程,也不能显示整个探测过程。

我注意到,使用 RyuJIT 时,由于编译和加载编译后的 IL 的方式不同,一些绑定看起来略有不同,顺序也不同。虽然我已经能够研究和解决具有约束力的问题,但我非常不喜欢fuslogvw.exe它是一种耗时的(尽管是一种有用的)工具。因此,我开始寻找更好的工具来监控探测过程(但毫无结果)。

.net c# clr fusion assembly-loading

4
推荐指数
1
解决办法
711
查看次数

合并相同的 vgg16 模型但具有不同的输入

我正在研究一个项目中的分类问题。我的问题的特殊性是我必须使用两种不同类型的数据来管理它。我的课程包括汽车、行人、卡车和自行车。我的数据集由以下部分组成:

-来自相机的图像:它们是 RGB 图像。这是一个例子:在此输入图像描述

  • 通过将激光雷达点云(仅 3D 点)投影到 2D 相机平面并使用深度和反射率对像素进行编码来获得图像。以下是示例: 在此输入图像描述 在此输入图像描述

我已经成功地使用这两种模式,以便通过使用 keras API 的 Concatenate 函数来执行分类任务。

但我想做的是使用像 VGG 这样更强大的 CNN。我使用预训练模型并冻结除最后 4 层之外的所有层。我将灰度图像读取为 RGB,因为 VGG16 预训练模型需要 3 个通道输入。这是我的代码:

from keras.applications import VGG16
#Load the VGG model
#Camera Model
vgg_conv_C = VGG16(weights='imagenet', include_top=False, input_shape=(227, 227, 3))
#Depth Model
vgg_conv_D = VGG16(weights='imagenet', include_top=False, input_shape= (227, 227, 3))
for layer in vgg_conv_D.layers[:-4]:
    layer.trainable = False 
for layer in vgg_conv_C.layers[:-4]:
    layer.trainable = False 
mergedModel = Concatenate()([vgg_conv_C.output,vgg_conv_D.output])
mergedModel = Dense(units = 1024)(mergedModel)
mergedModel = BatchNormalization()(mergedModel)
mergedModel = …
Run Code Online (Sandbox Code Playgroud)

classification concatenation fusion lidar keras

3
推荐指数
1
解决办法
2134
查看次数

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

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

    // If assemblyName is not fully qualified, a random matching may be returned!!!!
    public static String QueryAssemblyInfo(String assemblyName)
    {
        ASSEMBLY_INFO assembyInfo = new ASSEMBLY_INFO();
        assembyInfo.cchBuf = 512;
        assembyInfo.currentAssemblyPath = new String('\0',
        assembyInfo.cchBuf);
        IAssemblyCache assemblyCache = null;
        // Get IAssemblyCache pointer
        IntPtr hr = GacApi.CreateAssemblyCache(out assemblyCache, 0);
        if (hr == IntPtr.Zero)
        {
            hr = assemblyCache.QueryAssemblyInfo(1, assemblyName, ref assembyInfo);
            if (hr != IntPtr.Zero)
                Marshal.ThrowExceptionForHR(hr.ToInt32());
        }
        else
            Marshal.ThrowExceptionForHR(hr.ToInt32());
        return assembyInfo.currentAssemblyPath;
    }
Run Code Online (Sandbox Code Playgroud)

有问题的代码是当它实际上是 Int64 时试图将 IntPtr 转换为 Int32,但问题是 Marshal.ThrowExceptionForHR 只接受 …

.net c# interop gac fusion

2
推荐指数
1
解决办法
683
查看次数

C#类的构造函数顺序:参数化,默认和静态?

假设我有一个包含3个构造函数的类,一个默认(无参数)构造函数,一个参数化构造函数和一个静态构造函数.像这样:

public MyClass()  { ... }
public MyClass(string arg) : this()  { ...  }
static MyClass()  { ... }
Run Code Online (Sandbox Code Playgroud)

假设我调用参数化构造函数,这些构造函数以什么顺序执行?

我认为它是静态的,然后参数化,然后默认.但是......我的经历并不同意.


背景:我有一个应用程序嵌入引用的DLL作为资源.在运行时,应用程序通过注册程序集解析程序

static MyClass()
{
    AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(Resolver);
}
Run Code Online (Sandbox Code Playgroud)

Resolver方法定义如下:

static System.Reflection.Assembly Resolver(object sender, ResolveEventArgs args)
{
    ....
} 
Run Code Online (Sandbox Code Playgroud)

我知道解析器可以按照它选择的任何方式生成装配.在我的应用程序的情况下,它做了一个

Assembly.GetExecutingAssembly().GetManifestResourceStream(name);
Run Code Online (Sandbox Code Playgroud)

其中name是嵌入资源的名称.然后读取该资源的所有字节,并对读取的字节块执行Assembly.Load(byte []).

起初,这可能听起来很奇怪,但它确实有效.

你可能会说,为什么世界上你会嵌入一个集会,而不仅仅是ILMerge? 好问题.我认为我需要嵌入因为嵌入式程序集已签名,而且我没有重新签署合并程序集的密钥.所以我嵌入了.

问题是:假设我在类上声明了一个私有实例成员变量,该变量是嵌入式程序集中定义的类型.在我的情况下,它是一个枚举,我也初始化该枚举的值.

现在,如果静态构造函数已经运行,那么该私有成员上的初始化程序将没有问题.但我看到的是"找不到文件"错误 - 您的基本Fusion错误.

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'MyApp, Version=1.1.4.1, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c' or one of its dependencies. The system cannot find the …
Run Code Online (Sandbox Code Playgroud)

.net constructor class-design fusion

0
推荐指数
1
解决办法
1749
查看次数

如果没有安装 .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 运行时?

runtime fusion .net-4.0 .net-2.0 winforms

0
推荐指数
1
解决办法
222
查看次数

Neos CMS:如何覆盖模板头部的 <title> 标签

如何覆盖默认模板头部的现有标题标签?我可以添加新标签,但默认标题标签仍然存在。我还想添加页面的描述。

默认.html:

<head>
    <f:section name="meta">
        <title>{title}</title>
        <meta name="description" content="{description}">
    </f:section>
</head>
Run Code Online (Sandbox Code Playgroud)

根.融合:

page = Neos.Neos:Page {
    head {
        meta = Neos.Fusion:Template {
            templatePath = 'resource://Test.Package/Private/Templates/Page/Default.html'
            sectionName = 'meta'

            title = ${'Test | ' + q(node).property('title')}
            description = ${q(node).property('description')}
        }
Run Code Online (Sandbox Code Playgroud)

我尝试根据 Neos CMS 文档上的示例进行制作:http://neos.readthedocs.io/en/stable/CreatingASite/RenderingCustomMarkup/AdjustingOutput.html ?highlight=meta#the-head

fusion neoscms

0
推荐指数
1
解决办法
535
查看次数

执行任何终端命令时获取“无此文件或目录”(由VMware Fusion引起)

我正在使用macOS High Sierra,尝试安装脚本时出现以下错误:

 sh: Fusion.app/Contents/Public:/Users/<name>/.rvm/bin: No such file or directory
Run Code Online (Sandbox Code Playgroud)

显然与rvmFusion.app无关(我没有该应用),我有什么VMWare Fusion.app

macos vmware path fusion vmware-fusion

0
推荐指数
1
解决办法
654
查看次数