Nuget包 - 引用的程序集不包含在项目引用中

时间:2016-04-22 14:32:54

标签: visual-studio nuget dependency-management nuget-package nuget-spec

在我解决问题之前,让我快速解释一下我的目标:

我有一个模板项目,我用于我构建的每个网站,包括基类,常用页面(例如联系我们),有用的实用程序(异常日志记录)等。我想使这个模板可重用和可更新。以前我使用的是Visual Studio项目模板,但是在引用我需要的所有程序集时遇到了问题,所以我转向Nuget。我的印象是这会更容易,也为我提供额外的好处。

问题:

我无法弄清楚如何在包中创建包含所有引用(解决方案中的其他项目和本地计算机上的dll)的nuget包,并在安装的子项目中使它们成为依赖项这个模板。

这是我走了多远:

一个。在项目的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>

湾当我运行pack命令时,我使用它:nuget pack {projectname} .csproj - IncludeReferencedProjects -Symbols

℃。输出是两个独立的项目,一个是.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

1 个答案:

答案 0 :(得分:0)

好吧,所以在尝试了阳光下的所有事情后,我认为这个问题与我命名的主项目,Nuget包和子项目的名称相同 - (例如MyProject.csproj&amp; package MyProject 。#。#。#)。

看起来这些引用可能已被来自Nuget包的MyProject.csproj文件覆盖在子项目的.csproj文件中,该文件具有本地../引用。所以我在nuspec中重命名了Nuget包的id <id>$id$.Client</id>,然后一切都开始了。