.NET Core csprojアプリケーションで PhantomJS NuGetパッケージ を使用しようとしています。しかし、NuGetに新しいPackageReference
構文を使用することは不可能だと思います。
このようにPhantomJSパッケージを参照すると:
<PackageReference Include="PhantomJS" Version="2.1.1">
<IncludeAssets>all</IncludeAssets>
</PackageReference>
dotnet build
を実行しても何も起こりません。
PhantomJSパッケージ内のファイルを出力ディレクトリ(またはプロジェクト内の任意の場所)にコピーして、PhantomJSパッケージによって提供されるバイナリファイルを使用できるようにすることを期待しています。
PhantomJS NuGetパッケージの内容をMSBuildを使用して出力ディレクトリにコピーする別の方法はありますか?
NuGetの<PackageReference>
構文は、project.json
構文と同様に、推移的な依存関係を使用します。そのため、同じルールが適用されます。これを参照してください NuGet v これは、packages.config
と新しい構文の間で機能するものと機能しないものについて説明しています。具体的には
Install.ps1またはuninstall.ps1が機能することを信頼することはできません。これらのファイルはpackages.configを使用すると実行されますが、v3では無視されます。したがって、パッケージは実行せずに使用できる必要があります。 Init.ps1は引き続きNuGet3で実行されます。
ファイルを出力ディレクトリにコピーするには、 contentFiles を使用するようにPhantomJS
NuGetパッケージを変更する必要があります。
私はあなたが使いたいと思います:
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
概して <PropertyGroup>
。これにより、すべての依存関係が出力フォルダーにコピーされます。つまり、すべての依存関係がコピーされるため、状況によってはかなり混乱する可能性があります。
次に、特定のアセンブリまたはパッケージを除外する場合:
<ItemGroup>
<-- won't copy to output folder -->
<PackageReference Include="MahApps.Metro" version="1.6.5">
<IncludeAssets>compile</IncludeAssets>
</PackageReference>
<PackageReference Include="Dragablz" version="0.0.3.203">
<IncludeAssets>compile</IncludeAssets>
</PackageReference>
...
<-- normal will copy to output folder -->
<PackageReference Include="xmlrpcnet" version="3.0.0.266" />
<PackageReference Include="YamlDotNet" version="6.0.0" />
</ItemGroup>
<ItemGroup>
<!-- keep Assembly reference from copying to output -->
<Reference Include="$(SolutionDir)MarkdownMonster\bin\$(Configuration)\$(TargetFramework)\MarkdownMonster.exe">
<Private>false</Private>
</Reference>
</ItemGroup>
このコンテキストでのcompile
は、コンパイルには使用できますが、出力フォルダーにはコピーされないことを意味します。
dotnet publish
をお試しください
dotnet publish [<PROJECT>] [-c|--configuration] [-f|--framework] [--force] [--manifest] [--no-dependencies] [--no-restore] [-o|--output] [-r|--runtime] [--self-contained] [-v|--verbosity] [--version-suffix]
dotnet publish [-h|--help]
https://docs.Microsoft.com/en-us/dotnet/core/tools/dotnet-publish?tabs=netcore2x を参照してください。
タグ名は誤解を招く恐れがあります。試してみてください
<PackageReference Include="PhantomJS" Version="2.1.1">
<IncludeAssets>none</IncludeAssets>
</PackageReference>
または
<PackageReference Include="PhantomJS" Version="2.1.1">
<ExludeAssets>all</ExcludeAssets>
</PackageReference>
代わりに、参照されるアセンブリやその他のファイルをビルド出力にコピーするために。 https://docs.Microsoft.com/en-us/nuget/consume-packages/package-references-in-project-files を参照してください。