У меня есть веб-проект (mvc5) с project.json внутри.
Кроме того, у меня есть пакет nuget. Внутри этого пакета (помимо ссылки на dll) у меня есть несколько файлов содержимого (файлы cshtml, css, javascript и т. д.).
Есть 2 цели для достижения:
- После установки пакета в проект я хочу, чтобы файлы содержимого были включены в проект.
- После создания проекта я хочу, чтобы 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 (.tfignore). Я не хочу, чтобы эти файлы содержимого были частью веб-проекта в TFS. Однако, конечно, сервер сборки TFS не может собрать проект, потому что отсутствуют некоторые файлы содержимого (файлы из пакета). Поэтому я хочу, чтобы nuget на сервере сборки восстанавливал файлы содержимого до того, как он начнет собирать статистику проекта.
Любая идея, как получить эту работу, если это возможно? Или, может быть, это невозможно, и у меня должны быть файлы контента для включения в проект?