2017-08-28 78 views
0

我有一个web项目(mvc5)与project.json里面。nuspec内容文件没有添加到项目

另外,我有一个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中Web项目的一部分。但是,当然,TFS构建服务器无法构建项目,因为缺少一些内容文件(包中的文件)。所以我希望构建服务器上的nuget在构建项目之前恢复内容文件。

任何想法如果这可能是如何得到这项工作?或者,也许这是不可能的,我必须将内容文件包含到项目中?

回答

0

这是设计。 NuGet包不再需要修改项目的源代码,而只是添加到其构建的输出或构建过程(除.NET库之外)。用于向项目添加源的content文件夹仅继续受packages.config基础项目的支持,因为这将是对现有项目的重大更改,但使用project.jsonPackageReference(VS 2017)的项目会获得新的行为。