1

我走進這個問題之前,讓我很快地解釋我的目標:NuGet包 - 引用的程序不被列爲項目參考

我有我使用的每一個網站,我建,其中包括一個模板項目基類,常用頁面(例如聯繫我們),有用的實用程序(異常日誌記錄)等。我想使這個模板可重用和可更新。以前我使用的是Visual Studio項目模板,但是我在引用所有需要的程序集時遇到了問題,所以我轉向了Nuget。我的印象是這樣會更容易,同時也給我提供了額外的好處。

問題:

我無法弄清楚如何創建一個NuGet包,其中將包括(解決方案中的我的本地機器上的兩個其他項目和DLL)包中的所有引用,也使他們安裝此模板的子項目中的依賴關係。

這是我得到了多少:

a。在該項目的nuspec文件中,我有以下內容:

<references> 
    <reference file="AjaxControlToolkit.dll" /> <!-- nuget dependency --> 
    <reference file="BjxContacts.Shared.dll" /> <!-- project dependency --> 
    <reference file="SomeExample.exe" /> <!-- exe local file dependency --> 
    <reference file="SomeOther.dll" /> <!-- dll local file dependency --> 
</references> 
<files> 
    <file src="bin\*.pdb" target="lib" /> 
    <file src="bin\*.dll" target="lib"/> 
    <file src="bin\*.exe" target="lib"/> 
    <file src="bin\*.xml" target="lib"/> 
</files> 

b。當我運行pack命令時,我使用以下命令:nuget pack {projectname} .csproj - IncludeReferencedProjects -Symbols

c。輸出是兩個獨立的項目,一個與.symbols,一個沒有,它看起來像這樣在Package Explorer中:

兩個項目: enter image description here

符號PKG:enter image description here

所以在這一點上,感覺就像我一切正常。但是,一旦我在Visual Studio中創建了一個新的空Web應用程序並安裝此包,則這些引用的程序集或項目都不會包含在引用中:

d。在Visual Studio中的新(子)項目中: enter image description here

我已經在這裏碰到了一個完整的磚牆。我一直在尋找天在網上,我發現了一堆東西,看上去就像他們也許會有幫助,但讓我失望的死角:

我在哪裏錯了?

更新 在.net451文件夾中,它添加了所有外部項目引用。正如你可以在WebApplication截圖中看到的那樣,這些引用也不會被添加。 http://blabberjax.com/uploads/net451%20folder.JPG

+0

什麼是.nupkg中的lib \ net451文件夾?我猜組件應該在那裏,但你的.nuspec把它們放在lib目錄中。我猜想NuGet會找到lib \ net451目錄並忽略父lib目錄中的程序集。如果將引用lib \ net451文件夾中的所有程序集,則您也不需要參考部分。如果您正在使用nuget pack .csproj,那麼您可以從.nuspec中刪除文件部分。 –

+0

嘿@MattWard,項目引用將進入該文件夾,但它們也不會被添加爲創建的子項目中的引用。任何其他的想法可能會讓孩子的項目把它們當作參考嗎? 此外,我試圖改變目標=「lib \ net451」文件路徑,它仍然無法正常工作。 – pharophy

回答

0

好的,在嘗試了太陽下的一切後,我認爲這個問題與我命名主項目Nuget包和子項目名稱相同 - (例如MyProject。csproj & package MyProject。#。#。#)。

看起來引用可能已被覆蓋在子項目的.csproj文件中,由NuPro包中的MyProject.csproj文件覆蓋,該文件具有本地../引用。於是我將nuspec中的Nuget包的ID更名爲 <id>$id$.Client</id>,然後一切開始工作。

+0

另外,請確保生成的.nuget包(它只是一個zip文件)中的DLL駐留在實際的/ lib文件夾中。否則,您必須將src調整到各個DLL的放置位置。 – 2016-10-22 07:05:33