2013-11-20 70 views
1

我正在尝试使用名称中有一个点的.NET程序集,但它不起作用。 程序集的名称是PylonC.Net。例如,我的代码以.NET程序集名称包含点

using System; 
using System.Collections.Generic; 
using PylonC.Net; 

开始如果我编译它(与附带MS VS2010快递C#compliler CSC.EXE)我得到这个错误:

error CS0246: The type or namespace name 'PylonC' could not be found (are you missing a using directive or an assembly reference?)

我检查了PylonC.Net与GACUTIL缓存:

The Global Assembly Cache contains the following assemblies:
PylonC.Net, Version=4.0.1.3425, Culture=neutral, PublicKeyToken=a77e8471c5919d 5a, processorArchitecture=MSIL

如果我检查缓存PylonC我得到这个:

The Global Assembly Cache contains the following assemblies:

Number of items = 0

在我看来,程序集名称中的点使编译器在PylonC内部寻找Net,而不是名为PylonC.Net的程序集。

Basler提供用于控制FireWire相机的PylonC.Net组件。我无法改变它的名字或找到替代品。

我试图从Basler获得支持,但这很困难,因为我们从第三方供应商那里购买了他们的相机作为系统的一部分。 Basler不直接提供支持,而是通过当地代表提供支持,而代表仅支持其客户(即通过他们购买Basler相机的用户)。第三方供应商在与我不同的国家...

任何帮助将不胜感激!

谢谢

吉尔

+0

在我头顶上,您可以使用一些IL反汇编程序(例如JetBrains的DotPeek)来查找程序集本身并获取它的实际名称。 – J0HN

回答

6

好像你忘了你的项目添加到PylonC.Net集的引用。

另外,名称空间和程序集名称是两个完全不同的东西。两者都可以包含点,并且大多数时候它们包含许多点。 (命名空间大多以程序集名称开头,但仅限于大会名称。)

+0

谢谢!你是完全正确的。我应该提到我是一个.NET lamer ......无论如何,为了完整性和将来的参考,以下是如何正确调用编译器:csc SimpleGrab.cs/reference:“C:\ Program Files \ Basler \ pylon 4 \ pylonc.net \ bin \ PylonC.NET.dll“ – user3012520

+0

您可以在Visual Studio中添加引用:右键单击项目 - >添加引用。最后,它最终会作为csc.exe的参考参数,但在Visual Studio中开发代码并维护项目会更好。 – fejesjoco

相关问题