2013-11-20 108 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

相關問題