私はちょうどcsprojフォーマットに移行したクラスライブラリを持っています。このライブラリはSQLite.Coreに依存しています。私のパッケージを追加し、任意のプロジェクトのために、出力フォルダにコピー取得するために使用されるネイティブの依存関係x64/SQLite.Interop.dll
とx86/SQLite.Interoop.dll
を持って新しいCSPROJクラスライブラリにネイティブDLLを含むNuGetパッケージを含めるにはどうすればよいですか?
SQLiteの。私はNuGetとしての私のライブラリを構築することができ、新たなcsprojに移行した後
<Import Project="..\packages\System.Data.SQLite.Core.1.0.106\build\net451\System.Data.SQLite.Core.targets" Condition="Exists('..\packages\System.Data.SQLite.Core.1.0.106\build\net451\System.Data.SQLite.Core.targets')" />
:これは、自動的に古いcsprojファイルに次のインポートを含むことによってNuGetでの世話をしました。依存関係として正しくSQLite.Coreが含まれていますが、私のNuGetライブラリを消費する人は、出力フォルダにcoppiedされたネイティブ依存関係を取得しません。
一方、コンシューマが最初にSQLite.Coreを追加した場合、私のパッケージをすべて追加すると正しく動作します。
マイグレーション前にどのように動作を復元できますか?以下は、移行csprojさ:System.Data.SQLite.Core
がコンテンツにパッケージを含めるようにビルド時にロジックを使用していますので、あなたはそのパッケージを参照するライブラリを構築する場合
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>My.Library</PackageId>
<Description>Some Library.</Description>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net452</TargetFramework>
<AssemblyName>My Library</AssemblyName>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.106" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
</Project>
優秀、説明していただきありがとうございます。 – MaYaN