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

相关问题