在阅读了我可以找到的关于NuGet 3.3+的新contentFiles
元素的所有内容之后,我仍然无法让它在我的包中运行。我有一个针对net46
和uap10.0
的包,并且项目类型和平台的正确DLL的选择按预期工作。但我还想在程序包安装时向项目添加两个文件,一个用于所有项目和平台的CSV文件,以及一个用于C#或VB.Net(带buildAction="Compile"
)的代码文件。这是我最新的.nuspec文件的删节版本:
<?xml version="1.0" encoding="utf-8" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="3.3.0">
...
<contentFiles>
<files include="any\any\ErrorCodes.csv" buildAction="None" copyToOutput="false" />
<files include="cs\any\Errors.cs.pp" buildAction="Compile" />
<files include="vb\any\Errors.vb" buildAction="Compile" />
</contentFiles>
</metadata>
<files>
<file src="contentFiles\any\any\ErrorCodes.csv" target="contentFiles\any\any\" />
<file src="contentFiles\cs\any\Errors.cs.pp" target="contentFiles\cs\any\" />
<file src="contentFiles\vb\any\Errors.vb" target="contentFiles\vb\any\" />
...
</files>
</package>
创建包时没有错误,它包含contentFiles文件夹中具有指定目录结构的三个文件。
但是当我安装软件包时 - 我尝试使用通用应用程序(C#和VB)和我修改为使用project.json
文件的.NET 4.6控制台应用程序 - 添加了对DLL的引用,但内容文件既未添加到项目结构中,也未复制到项目目录中。
我感谢任何意见!
答案 0 :(得分:6)
好的,我发现contentFiles实际上正在工作,但不是我预期的方式。对于无法找到他/她的contentFiles的每个人的简短描述:
Errors
课程是可以访问的,虽然它在项目的任何地方都不可见。我不确定我是否喜欢这种新机制。来自Visual Studio中看不到的一些隐形源的代码(通过NuGet发布的库在References中可见,它通过contentFiles带来的任何代码都没有)可能会造成问题。我实际上发现当我在Visual Studio中出现歧义错误时,contentFiles机制正在工作,因为&#34;隐形&#34;来自NuGet包的Errors.cs与&#34; visible&#34; Errors.cs我手动添加到项目中。