Я пытаюсь сослаться на некоторые javascript файлы в моем проекте, которые приходят из пакета nuget. Поэтому я добавил эти файлы в качестве ссылки на контентную ссылку.
<Content Include="$(NuGetPath_jQuery)\Content\Scripts\**\*.*">
<Link>Scripts\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Но для отладки веб-проекта F5 мне нужно, чтобы эти файлы были частью структуры папок проекта. Я также использую эти файлы в ScriptBundle, поэтому для локальной отладки должна присутствовать физическая структура каталогов. В результате я закончил тем, что добавил следующую сборку ttask, которая копирует файлы, связанные с контентом, согласно блогу Мэтта Пердека , на который ссылаются во многих других потоках вокруг ссылок на контент, как показано ниже.
<Target Name="CopyLinkedContentFiles" BeforeTargets="Build">
<Copy SourceFiles="%(Content.Identity)"
DestinationFiles="%(Content.Link)"
SkipUnchangedFiles='true'
OverwriteReadOnlyFiles='true'
Condition="'%(Content.Link)' != ''" />
</Target>
Теперь VS доволен отладкой F5. Но жалуется на загрузку проекта в следующий раз из-за невозможности добавить ссылки на контент, потому что файлы уже существуют. Которые были скопированы в предыдущей сборке. Я пропускаю какой-то секретный соус, чтобы сказать VS, чтобы игнорировать эти предупреждения? Я заметил, что msbuild не выдает такого предупреждения. Это только VS, который жалуется. Я вижу предупреждение, как показано ниже:
Предупреждение Файл 'C: \ Users \ pkorhale.nuget \ packages \ jquery \ 3.3.1 \ Content \ Scripts \ jquery -3.3.1. slim.min. js 'невозможно добавить в проект. Невозможно добавить ссылку на файл jquery -3.3.1.slim.min. js. В этой папке уже есть файл с таким же именем.