Пакет NuGet без добавления файлов в проект Visual Studio - PullRequest
3 голосов
/ 06 мая 2011

Я только начинаю работать с NuGet и пытаюсь разобраться с этим.Возможно, я пытаюсь использовать NuGet для чего-то, для чего он не предназначен, но я надеялся, что кто-то может дать мне несколько советов.

Моя проблема: я пытаюсь создать пакет с другими файлами.Файлы различного типа (изображения, текстовые файлы и т. Д.).Я хочу, чтобы пакет работал, чтобы файлы добавлялись в корень моего приложения, но не включались в мой проект Visual Studio.Я пробовал, но файлы всегда добавляются в проект.Есть ли способ обойти это?

Спасибо

Ответы [ 2 ]

6 голосов
/ 07 мая 2011

Прямой поддержки этому сегодня нет.Все, что вы помещаете в папку содержимого, добавляется в ваш проект при установке пакета.

Однако вы сможете достичь этого результата с помощью сценария install.ps1, например:

  • Поместите все файлы, которые вы хотите в конечном итоге в ваш веб-корень, в какую-то папку в пакете
  • Используйте PowerShell в install.ps1, чтобы скопировать все в этой папке в ваш веб-корень, который, вероятно,однострочник.
1 голос
/ 31 января 2018

Вы можете поместить свои файлы в другую папку (не содержимое) в пакет nuget и добавить файл .targets в свой пакет 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>

При создании окончательного приложения файлы будут скопированы в целевую папку сборки.

...