2016-07-21 1 views
4

У меня есть проект общего проекта, который содержит некоторые файлы содержимого как JSON и т.д.asp.net ядро ​​и в том числе общих файлов контента

У меня есть целый ряд ключевых проектов ASP.Net, и я хочу, чтобы включить/поделиться этих файлов JSON. Очень просто с опцией «Ссылка на файл» в VS, но она недоступна в основных проектах ASP.Net.

Я пробовал играть с buildOptions/copyToOutput следующим образом, но это, похоже, не работает, и в процессе сборки не было ошибок или предупреждений.

"copyToOutput": { 
    "include": [ "../Common.Includes/mysettings*.json" ] } 

Любые идеи с благодарностью приняты?

Благодаря

Донал

ответ

0

Установка copyToOutput отлично работает для меня (по крайней мере в dotnet 1.0.0-preview3-003171 на Windows). Обратите внимание, однако, что copyToOutput is not transitive - значение tath, если файлы скопированы в проекте A, они не будут скопированы для вывода в проект B, который ссылается на проект A.

Другой метод - использовать базовую файловую систему и создать символическую ссылку на общий файл или папку. В Linux это будет:

> ln -s ../Common.Includes common 

Windows, имеет аналогичный (но реже используется):

> mklink /J common ..\Common.Includes 

Вы можете настроить dotnet запустить его на конкретное событие:

"scripts": { 
    "precompile": "cmd /C mklink /J common ..\\Common.Includes" 
} 

В RC1 были также события, такие как 'prepare' или 'prerestore', что woul d более подходит для этого, но на данный момент they're gone и dotnet поддерживает только 'precompile' и 'postcompile'.

Будет еще лучше добавить эту команду в отдельный скрипт вместе с некоторой логикой, чтобы проверить, существует ли ссылка уже существует. На окнах, я хотел бы создать init.ps1 Powershell скрипт:

if (!(Test-Path "common")) { 
    cmd /C mklink /J "common" "..\Common.Includes" 
} 

Затем сослаться на него из "сценариев":

"scripts": { 
    "precompile": "init.ps1" 
} 
+0

Привет Qbik, Спасибо, что нашли время, чтобы соединить такой consise ответ , У меня есть Preview 2 Sdk и установлены инструменты - моя версия 1.0.0-preview2-003121. И я бегу из VS2015. Моя система управления версиями - VSTS/TFS, и из того, что я прочитал, я не думаю, что символические ссылки и TFS работают идеально вместе. Таким образом, это оставляет какую-то форму процесса копирования через скрипты. Я могу подождать, пока v1 инструментов не увидит, работает ли он в этом, а если не идет сценарий. Thanks Donal –

+0

@DonalMcWeeney: 'copyToOutput' работает также в' 1.0.0-preview2-003121' (я проверил). Обратите внимание, что эти файлы будут скопированы в каталог * bin/Debug/netcoreapp1.0 * (или что-то подобное, в зависимости от настроек проекта), поэтому вы не увидите их в VS. – qbik

+0

С точки зрения сценария: я рекомендую добавить ссылку symlink (* common * в ответе выше) на игнорируемые файлы в Control Version, поэтому он не будет проверен (в git это будет запись в * .gitignore *, Я не уверен, как [игнорировать каталог в TFS] (http://stackoverflow.com/questions/922798/how-to-ignore-files-directories-in-tfs-for-avoiding-them-to- перейти к центрально-источнику)). Таким образом, вы избегаете дублирования в VCS и все равно должны работать на машинах других разработчиков - символическая ссылка будет автоматически воссоздана при сборке. – qbik

 Смежные вопросы

  • Нет связанных вопросов^_^