2015-08-27 23 views
1

我有兩個nuget包,其中一個取決於另一個。在安裝第二個包時,第一個包中的程序集的程序集引用可以正確添加到項目引用中,但是我無法添加後者。我的規格有什麼問題嗎?未添加定製nuget包的程序集引用

// first 
<?xml version="1.0" encoding="utf-8"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> 
    <metadata> 
     <id>first</id> 
     ... 
    </metadata> 
    <files> 
     <file src="..\src\MyFirstProject\bin\v4.0\MyFirstProject.dll" target="lib\net40-client\MyFirstProject.dll" /> 
     <file src="..\src\MyFirstProject\bin\v4.0\MyFirstProject.xml" target="lib\net40-client\MyFirstProject.xml" /> 
     <file src="..\src\MyFirstProject\bin\v4.5\MyFirstProject.dll" target="lib\net45\MyFirstProject.dll" /> 
     <file src="..\src\MyFirstProject\bin\v4.5\MyFirstProject.xml" target="lib\net45\MyFirstProject.xml" /> 
     <file src="..\src\MyFirstProject\bin\v4.6\MyFirstProject.dll" target="lib\net46\MyFirstProject.dll" /> 
     <file src="..\src\MyFirstProject\bin\v4.6\MyFirstProject.xml" target="lib\net46\MyFirstProject.xml" /> 
    </files> 
</package> 

// second 
<?xml version="1.0" encoding="utf-8"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> 
    <metadata> 
     <id>second</id> 
     ... 
     <dependencies> 
      <dependency id="first" ... 
     </dependencies 
    </metadata> 
    <files> 
     <file src="..\src\MySecondProject\bin\v4.6\MySecondProject.dll" target="lib\net46\MySecondProject.dll" /> 
     <file src="..\src\MySecondProject\bin\v4.6\MySecondProject.xml" target="lib\net46\MySecondProject.xml" /> 
    </files> 
</package> 

第二個項目僅適用於.NET4.6,因爲我使用了此版本附帶的一些框架特定功能。我試圖安裝該軟件包的目標項目也是一個.NET4.6項目。

驗證:

  • 目標項目.NET4.6
  • 包可以正確創建
  • 組件駐留在lib\文件夾
  • 組件正確被包裝
  • NuGet包得正確安裝
  • 輸入packages.config右邊框ork版本製作

回答

0

沒關係,我修好了。

問題在於packages.config的內容。我最初創建了一個.NET4.5項目的目標項目,並下載了導致程序集引用不被添加的.NET4.6 nuget包。在我發現我的錯誤後,我切換到.NET4.6作爲項目平臺,手動調整packages.config中的包版本,但VS以某種方式記住了該設置,因此它沒有改變任何內容。只有當我從package.config中完全移除每個包裝並重新安裝後,它纔會神奇地開始工作。奇怪的。 :)

+0

你應該將自己的答案標記爲**答案。 – Maarten

相關問題