2016-09-24 10 views
0

似乎在互聯網上有幾十個帖子出現此類錯誤。但我認爲我的情況不同,我發現的所有解決方案都不能幫助我。 我已經類型(我刪除了所有不重要的事情,但它改變不了什麼):使用此類型的外部庫後出現「類型在名稱空間中不存在」

using ExternalLibrary; 
namespace MyProject 
{ 
    public class MyClass 
    { 
     public ExternalLibrary.ExternalType myVar; 
    } 
} 

我試圖訪問該類型的XAML進一步使用它作爲一個數據類型:

<Window x:Class="MyProject.MyWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:local="clr-namespace:MyProject"> 
    <Window.Resources> 
     <local:MyClass x:Key="myKey"/> 
    </Window.Resources> 
</Window> 

並獲取錯誤。如果從MyClass刪除using ExternalLibrarymyVar,所有作品。在類中使用外部庫 - 類名不存在於名稱空間中。刪除庫的使用 - 並且類再次存在。我使用VisualStudio 2015,我曾試過VS 2013,錯誤沒有消失。我嘗試在調試,發佈,x86,x64,其他框架,客戶端配置文件,命名空間和許多其他事物的不同組合中重建。有沒有解決這個問題?謝謝。

+0

你是說如果你刪除using語句,編譯器對'ExternalLibrary.ExternalType myVar'滿意嗎? –

+0

不,當然,你也需要刪除這個字段。 – Feofilakt

+0

有趣的是它適用於我,我的意思是它可以和你一樣導入的外部庫一起工作。 – FreeMan

回答

1

事實證明有問題的ExternalLibrary,區別是使用的項目它是針對任何CPU,內置了AMD64。編譯器在爲32位處理器構建項目時找不到該類,因此出現錯誤。您可以安全地切換到64位處理器,因爲無論如何它都不能在其他機器上工作。要切換目標處理器去構建 - >配置管理器 - >平臺 - > 64

您可能要選擇平臺的依賴於積極的解決方案平臺,每個項目的不同組合。例如,如果您的解決方案針對的是x86,則項目A將針對x86構建,而項目B針對任何CPU構建,但如果解決方案的針對x64,則項目A和B都針對x64構建。欲瞭解更多信息,請參閱Understanding Build Configuration

如果你使用這些設置,您可以用意想不到的配置最終打,所以它可能是有意義的看看什麼每個項目的定位(你可以做到這一點在Configuration Manager)。

相關問題