visual-studio - 我的 nuget 包如何将 .so 文件复制到输出?
问题描述
我有一个提供一些功能的 nuget 包。在那个 nuget 包中,有一个对 libmediainfo 的引用,这是一个第三方.dll
文件和.so
文件。通过将以下内容添加到我的.csproj
文件中,我已将它们包含在我的 nuget 包中:
<ItemGroup>
<Content Include="libmediainfo.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Pack>true</Pack>
<PackagePath>lib\$(TargetFramework)</PackagePath>
</Content>
<Content Include="libmediainfo.so">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<Pack>true</Pack>
<PackagePath>lib\$(TargetFramework)</PackagePath>
</Content>
</ItemGroup>
现在,当我在我的主项目中包含该包时,只有第三方.dll
文件被复制到 bin 目录,而不是.so
文件。我在 linux docker 容器中运行,需要复制这两个文件。这个 nuget 包将在多个地方使用。如何.so
仅通过添加对 nuget 包的引用来使消费项目也包含该文件?
解决方案
这libmediainfo.dll
是一个程序集,因此可以将其打包到 lib 文件夹中。但libmediainfo.so
它只是一个简单的文件,它应该被打包到 content/ contentFiles文件夹中。所以你应该删除<PackagePath>lib\$(TargetFramework)</PackagePath>
第二个脚本中的行。
<Content Include="libmediainfo.so">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<PackageCopyToOutput>true</PackageCopyToOutput>
<pack>true</pack>
</Content>
这足以libmediainfo.so
打包到 content/contentFiles 文件夹中。如果你的主项目使用这个包,构建它,你会libmediainfo.so
在它的bin
文件夹中看到。(PackageCopyToOutput就是你要找的东西!)
推荐阅读
- jpa-2.1 - 如何证明 JPA Enity 不能是 Hibernate 5 的最终类
- ios - 支持 ButtonStyle 中的不同形状
- c# - 如何从 azure http 函数中捕获 OAUTH2 clientapp
- python-3.x - 如何找到数据框所有行的局部最大值?
- excel - How to sort out discrete cells on the cell text color
- node.js - 以编程方式在不和谐上流式传输视频?
- r - 如何在函数调用中使用 data.table?
- arrays - Gson我无法反序列化包含纬度和经度的数组
- python - 从多个列表和列表列表中获取唯一对象。然后使用所有列表中的唯一对象创建一个新列表
- laravel - Laravel:从 Api (URL) 获取大数据