C# 如何将内容链接文件复制到项目目录而不导致重复

C# 如何将内容链接文件复制到项目目录而不导致重复,c#,.net,visual-studio,msbuild,visual-studio-2019,C#,.net,Visual Studio,Msbuild,Visual Studio 2019,我试图引用我的项目中一些来自nuget包的javascript文件。所以我添加了这些文件作为内容链接参考 <Content Include="$(NuGetPath_jQuery)\Content\Scripts\**\*.*"> <Link>Scripts\%(RecursiveDir)%(FileName)%(Extension)</Link> <CopyToOutputDirectory>PreserveNewest</Copy

我试图引用我的项目中一些来自nuget包的javascript文件。所以我添加了这些文件作为内容链接参考

<Content Include="$(NuGetPath_jQuery)\Content\Scripts\**\*.*">
  <Link>Scripts\%(RecursiveDir)%(FileName)%(Extension)</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

脚本\%(递归目录)%(文件名)%(扩展名)
保存最新
但是,我可以F5调试web项目,我需要这些文件成为项目文件夹结构的一部分。我还在ScriptBundle中使用这些文件,因此需要提供物理目录结构以进行本地调试。结果,我添加了下面的build 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的链接。此文件夹中已存在同名文件

结果是,我需要关闭此内容的可见性。无论如何,文件会被物理复制,所以我们最终会在第一次构建之后在解决方案资源管理器中看到它。这对我来说已经足够好了

<Content Include="$(NuGetPath_jQuery)\Content\Scripts\**\*.*">
  <Link>Scripts\%(RecursiveDir)%(FileName)%(Extension)</Link>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  <Visible>false</Visible>
</Content>

脚本\%(递归目录)%(文件名)%(扩展名)
保存最新
假的