【发布时间】:2017-08-28 14:36:21
【问题描述】:
我有一个内部包含 project.json 的 Web 项目 (mvc5)。
另外,我有一个 nuget 包。在这个包内(除了 dll 参考)我有一些内容文件(cshtml 文件、css、javascript 等)。
有两个目标要实现:
- 将包安装到项目后,我希望将内容文件包含到项目中。
- 构建项目后,我希望 nuget 恢复内容文件
nuspec 文件:
<?xml version="1.0"?>
<package>
<metadata>
/.../
<dependencies>
<group targetFramework="net461">
/.../
</group>
</dependencies>
<contentFiles>
<files include="**/*.*" flatten="false" copyToOutput="false" buildAction="Content" />
</contentFiles>
</metadata>
<files>
/.../
<file src="..\src\Content\**\*.*" target="contentFiles\any\any\Content" />
<file src="..\src\Views\**\*.*" target="contentFiles\any\any\Views" />
</files>
</package>
嗯,Visual Studio 正在毫无问题地添加 nuget 包。参考也包括在内。但内容总是缺失。内容文件不会从 /packages/ 文件夹复制,也不包含在项目中。 当我构建项目时也是如此 - 它只是复制 dll 而根本不触及包中的内容文件。
只有当我有 copyToOutput="true" 时它才有效,但所有内容当然都放在 bin 文件夹中。
我需要恢复内容文件的原因是 nuget 包中的文件被 tfs 'ignore file' (.tfignore) 忽略了。我不想让这些内容文件成为 TFS 中 Web 项目的一部分。但是,当然,TFS 构建服务器无法构建项目,因为缺少一些内容文件(包中的文件)。所以我希望构建服务器上的 nuget 在它统计构建项目之前恢复内容文件。
如果可能的话,知道如何完成这项工作吗?或者这可能是不可能的,我必须将内容文件包含到项目中?
【问题讨论】:
标签: visual-studio nuget nuget-package project.json nuspec