2013-01-10 51 views
0

我試圖調試此消息:當添加nuget包時,有時候在別的時候使用的參考信息不是...如何阻止它?

The type 'Logging.LoggingProvider' is defined in an assembly that is not referenced. You must add a reference to assembly 'Logging.LoggingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71561dfc7a07d5da'. 

我有一個鏈中彼此依賴幾個的NuGet包。在挖掘構建這些包的項目文件時,我發現組件被引用的方式稍有不同。有些人擁有鑰匙,有些則不具備鑰匙。這使我相信,如果我找到一種方法使nuget創建的參考文獻保持一致,我的問題就會消失。

組件一次簽署。我認爲引用行爲改變了,如果我從項目中刪除簽署的程序集= false,但似乎並非如此。

例如以1種溶液我已經使用相同的NuGet包和版本在2個不同項目中的參考文獻中是不同的

不正確的一個(或至少不期望的)

<Reference Include="Logging.LoggingProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=71561dfc7a07d5da, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Logging.LoggingProvider.1.0.24\lib\Logging.LoggingProvider.dll</HintPath> 
</Reference> 

並且在另一項目中的正確的是

<Reference Include="Logging.LoggingProvider, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Logging.LoggingProvider.1.0.24\lib\Logging.LoggingProvider.dll</HintPath> 
</Reference> 

什麼可能導致這種情況?我真的把nuget包添加到1個項目然後下一個..一個作品,另一個不 - 我不能看到解釋爲什麼項目文件中的任何東西。

+1

其他人注意到棘手的問題不會得到答案嗎? –

回答

0

NuGet使用底層VS層在安裝包時添加引用。 當您嘗試手動將此引用添加到這些項目時,會發生什麼情況?

+0

這實際上是間接的方式。在VS中,它的版本號非常具體,在nuget中更少,因此依賴關係的一些依賴性最終導致了問題。對項目文件中的xml進行一些護理並將其固定,然後使用正確限定的依賴性重新發布nuget包。 –

相關問題