在我进入问题之前,让我快速解释一下我的目标:
我有一个用于我构建的每个网站的模板项目,其中包括基类、公共页面(例如联系我们)、有用的实用程序(异常日志记录)等。我想让这个模板可重用和更新。以前我使用的是 Visual Studio 项目模板,但在引用我需要的所有程序集时遇到问题,所以我转向了 Nuget。我的印象是这会更容易,并且还为我提供了额外的好处。
问题:
我不知道如何创建一个 nuget 包,该包将包含包中的所有引用(解决方案中的其他项目和我本地计算机上的 dll),并且还使它们成为安装此模板的子项目中的依赖项。
这是我已经走了多远:
一个。在项目的 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
C。输出是两个独立的项目,一个带有 .symbols,一个没有,在 Package Explorer 中如下所示:
所以在这一点上,感觉就像我做的一切都是正确的。但是,一旦我在 Visual Studio 中创建了一个新的空 Web 应用程序并安装了这个包,这些引用的程序集或项目都不会包含在引用下:
我在这里撞到了一堵完整的砖墙。我已经在网上搜索了几天,我发现了一堆看起来可能会有所帮助的东西,但让我陷入了死胡同:
- https://github.com/dittodhole/powershell-nuget-packager
- 自动构建 NuGet 包,包括引用的依赖项
- NuGet 打包和引用 dll
- 为什么nuget打包时不包含引用的项目?
我哪里错了?
更新
在 .net451 文件夹中,它添加了所有外部项目引用。正如您在 WebApplication 屏幕截图中看到的那样,也没有添加这些引用。
(来源:blabberjax.com)