3

我刚刚开始使用 NuGet 并试图了解它。我可能正在尝试将 NuGet 用于某些不适合的用途,但我希望有人能给我一些提示。

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

谢谢

4

2 回答 2

6

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

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

  • 将您想要结束的所有文件放在您的 Web 根目录中的某个文件夹中的包中
  • 使用 install.ps1 中的 PowerShell 将该文件夹中的所有内容复制到您的 Web 根目录中,这可能只是一个单行。
于 2011-05-06T22:03:45.850 回答
2

您可以将文件放在 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>

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

于 2018-01-31T11:05:55.153 回答