3

NuGetを使い始めたばかりで、頭を悩ませようとしています。NuGetを使用して意図されていないものを作成しようとしている可能性がありますが、誰かがヒントを教えてくれることを期待していました。

私の問題:異なるファイルでパッケージを作成しようとしています。ファイルの種類は異なります(画像、テキストファイルなど)。パッケージを機能させて、ファイルがアプリケーションルートに追加されるようにしたいのですが、VisualStudioプロジェクトには含まれていません。試しましたが、ファイルは常にプロジェクトに追加されます。これを回避する方法はありますか?

ありがとう

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 に答える