【发布时间】:2017-12-25 19:44:30
【问题描述】:
我有一个类库,我刚刚迁移到新的 csproj 格式,它依赖于SQLite.Core。
SQLite 具有本机依赖项 x64/SQLite.Interop.dll 和 x86/SQLite.Interoop.dll,用于将添加我的包的任何项目复制到输出文件夹。 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 库没有将本机依赖项复制到输出文件夹。
另一方面,如果消费者首先添加SQLite.Core 然后添加我的包一切正常。
知道如何在迁移之前恢复行为吗?下面是迁移的csproj:
<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>
【问题讨论】:
标签: c# .net msbuild nuget csproj