Generating a wrapper unit for a .Net Assembly

时间:2016-04-04 17:42:53

标签: delphi .net-assembly delphi-10-seattle

On a Win 10 64-bit system, I'm trying to generate an import unit for the System.Xml NET Assembly into Delphi Seattle for a 32-bit project. So far as I understand it, I'm supposed to go to Component | Import Component, select Import .NET Assembly and click the Next button.

I'll describe what happens when I do in a moment, but I've checked whether System.Xml is on the GAC and it appears to be, according to GACUtil:

Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.17929 Copyright (c) Microsoft Corporation. All rights reserved.

The Global Assembly Cache contains the following assemblies: CustomMarshalers, Version=2.0.0.0, Culture=neutral,

[...]

System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL

[...]

Number of items = 1991

However, when I click the Next button in Import Component, all I see on the pop-up's Registered Assemblies tab's listbox is the single entry "CustomMarshalers". From there

a) Selecting CustomMarshalers and clicking Next (just to see what happens) takes me to the Component tab and the Class Name(s) box is empty.

b) Instead of a), typing "system.xml" in the Search box filters out the CustomMarshalers entry leaving No items available.

c) Instead of a), clicking the Add button, navigating to and selecting system.xml.dll in the .NetFramework\v4.0 folder in the Register .NET Assembly pop-up and then clicking Open returns me to the Registered Assemblies tab but does not add it to the list (I assume for the same reason, whatever it as, as prevents it being listed there in the first place, despite GACUtil reporting that it's registered).

So I can't complete the Import Component Wizard at all. I assume I'm doing something wrong, but what, and how do I do it successfully?

Fwiw, I've tried running Seattle as administrator in case it makes a difference but it doesn't.

0 个答案:

没有答案