微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MyGet 不显示 nuget 包自包含图标

如何解决MyGet 不显示 nuget 包自包含图标

我一直在将我们的 nuget 包迁移到使用自包含图标支持。当我将它们发布到 MyGet 时,我们在 Visual Studio 包管理器 UI 中看不到图标图像。

这是一个错误吗?有没有其他人使用自包含图标将 nuget 包发布到 MyGet 并显示在 VS 包管理器 UI 中?

解决方法

当然。这是一个问题,请检查 this link。打包到 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

实际上PackageIconUrliconUrl 已被删除。并感谢您的指导。

但是当我在 new-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 项目,使用 dotnet pack 命令行或在解决方案资源管理器中右键单击该项目-->Pack

注意:我的VS是VS2019 Community 16.8.6,如果你的VS2019太旧,请先更新。

另外PackageSources5 是本地供稿。

enter image description here

另外,如果你使用的是非sdk风格的网络框架项目,其实是可以做到的。您应该使用 msbuild -t:pack 而不是带有自定义 nuspec 文件的传统 nuget 包。

1) 在 lib 项目上安装一个名为 NuGet.Build.Tasks.Pack 的 nuget 包,并记住您应该使用 PackageReference 格式来安装它。如果没有,您应该右键单击 packages.config 文件-->将 packages.config 迁移到 PackageReference

2) 删除项目文件夹中的binobj文件以及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按钮,就可以在project folder\Debug or Release\下生成nupkg文件了。

enter image description here

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?