我一直在将我们的 nuget 包迁移到使用自包含图标支持。当我将它们发布到 MyGet 时,我们在 Visual Studio 包管理器 UI 中看不到图标图像。
这是一个错误吗?有没有其他人使用独立的图标向 MyGet 发布了一个 nuget 包,并且它们显示在 VS 包管理器 UI 中?
我一直在将我们的 nuget 包迁移到使用自包含图标支持。当我将它们发布到 MyGet 时,我们在 Visual Studio 包管理器 UI 中看不到图标图像。
这是一个错误吗?有没有其他人使用独立的图标向 MyGet 发布了一个 nuget 包,并且它们显示在 VS 包管理器 UI 中?
当然。这是一个问题并检查此链接。打包到 nupkg 中的自包含图标不能在本地 nuget 包源上使用。
所以我的建议是:
建议
一个建议是您可以将 nuget 包上传到 nuget.org。
二是使用图标Url。在网站上卸载您的图标。
新的sdk格式库包:
<PackageIconUrl> https://company.com/icon.png </PackageIconUrl>
nuspec 文件与此:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata minClientVersion="3.3">
<icon>images\icon.png</icon>
<iconUrl>https://company.com/icon.png</iconUrl>
</metadata>
<files>
<file src="..\..\icon.png" target="images\icon.png" />
</files>
</package>
更新 1
实际上,PackageIconUrl
和iconUrl
被删除。并感谢您的指导。
但是当我在一个新的 SDK风格(网络核心或网络标准)的 lib 项目中进行测试时,我可以在csproj
文件中使用这些:
<PropertyGroup>
<PackageId>moqq</PackageId>
<Version>1.0.0</Version>
<Authors>me</Authors>
<PackageIcon>images\test.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
<None Include="mysql.png" Pack="true" PackagePath="images"></None>
</ItemGroup>
使用PackageIcon
节点似乎有效。对于 new-sdk 项目,使用命令行或在 Solution Explorer--> Packdotnet pack
上右键单击项目。
注意:我的VS是VS2019 Community 16.8.6,如果你的VS2019太旧,请先更新。
此外,PackageSources5
是本地饲料。
另外,如果你用的是非sdk风格的net framework项目,其实也可以。您应该使用msbuild -t:pack而不是带有自定义 nuspec 文件的传统 nuget 包。
1)在 lib 项目上安装一个名为NuGet.Build.Tasks.Pack的 nuget 包,并记住您应该使用PackageReference格式来安装它。如果没有,您应该右键单击该packages.config
文件-->将 packages.config 迁移到 PackageReference中。
2)在你的项目文件夹中删除bin
和obj
文件以及nuspec
文件,该文件是多余的,如果它存在,它会影响msbuild -t:pack
.
3)将这些添加到csproj
文件底部的csproj
文件中:
<PropertyGroup>
<PackageId>moqqq</PackageId>
<Version>1.0.0</Version>
<Authors>me</Authors>
<PackageIcon>images\test.png</PackageIcon>
<PackageIconUrl></PackageIconUrl>
</PropertyGroup>
<ItemGroup>
<None Include="test.png" Pack="true" PackagePath="images"></None>
</ItemGroup>
您还可以添加csproj
文件:
<PropertyGroup>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
之后,点击Rebuild
按钮,它可以在 . 下生成 nupkg 文件project folder\Debug or Release\
。