NuGet包而不向Visual Studio项目添加文件

时间:2011-05-05 21:06:02

标签: nuget nuget-package

我刚刚开始使用NuGet并尝试着解决它。我可能正在尝试使用NuGet来实现它不适合的东西,但我希望有人可能会给我一些提示。

我的问题:我正在尝试使用不同的文件创建一个包。文件类型不同(图像,文本文件等)。我希望包能够正常工作,以便将文件添加到我的应用程序根目录中,但不包含在我的visual studio项目中。我试过了,但文件总是添加到项目中。有办法解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:6)

今天没有直接的支持。在安装软件包时,您放入内容文件夹的任何内容都会添加到项目中。

但是,您应该能够使用install.ps1脚本实现此结果,例如:

  • 将您想要的所有文件放在Web根目录中的某个文件夹
  • 在install.ps1中使用PowerShell将该文件夹中的所有内容复制到您的网络根目录中,这可能只是一个单行。

答案 1 :(得分:1)

您可以将文件放在nuget数据包中的另一个文件夹(而不是内容)中,并将.targets文件添加到nuget数据包中,然后在构建时复制文件。

MyProject.nuget文件:

...
<files>
    <file src="bin\$configuration$\$id$.pdb" target="lib\net45"/>
    <file src="C:\MyResourceFolder\**" target="resources"/>
    <file src="MyProject.targets" target="build"/>
  </files>
</package>

MyProject.targets文件:

<?xml version="1.0"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <None Include="$(MSBuildThisFileDirectory)\..\resources\**">
      <Link>\Recources\%(RecursiveDir)\%(Filename)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
   </None>
  </ItemGroup>
</Project>

构建最终应用程序时,文件将被复制到构建目标文件夹。