如何将图标添加到 nuget 包?
How to add an icon to a nuget package?
我们通过 Teamcity 托管我们自己的 nuget 服务器。除了指定 web url (http://....)?
之外,还有其他方法可以将图标添加到 .nuspec 文件吗?
或者 Teamcity 中是否有可以托管这些图标的地方?
不,这是使用 iconUrl 属性 的唯一选项 - 请参阅 NuSpec Reference
我通常会选择在 CDN 服务上托管这样的共享图像,而不是 TeamCity - CloudFlare 提供免费服务。
您可以将文件添加到 nuspec 内容文件夹并以这种方式指定 link:
"file://content/images/icon.ico"
您可以在此处找到更多信息:Packages containing Icon and License
如果您的图标在 GitHub 存储库中,您可以在 GitHub.com 上找到它,右键单击并 "Copy image address"。然后将其放入您的 .nuspec 中。这对我有用:
<iconUrl>https://github.com/tcs1896/SharpChecker/blob/master/SharpChecker/SharpChecker/SharpChecker/Icon.png?raw=true</iconUrl>
我有一个解决方案。我在 windows 10 上成功尝试。如果您必须在没有互联网的离线 PC 上安装您的应用程序,这将很有用。
第 1 步:
将标签添加到 nuspec 文件的内容。类似于以下内容:
<metadata>
<id>....</id>
...
<iconUrl>file://C:\app.ico</iconUrl>
...
<copyright>....</copyright>
</metadata>
第 2 步:从上述 nuspec 生成 nupkg 文件
步骤 3:从 nupkg 文件生成 exe 文件
第 4 步:
将 app.ico 文件放在以下位置: C:\app.ico 。可以根据nuspec文件中的<iconUrl>
选择任意位置。几乎 windows 台电脑有 "C" 个驱动盘。这样如果你使用 "C" 驱动器,就可以在另一台电脑上安装 .exe。
第 5 步:运行 用于在 PC 上安装应用程序的 exe 文件。
========= 结果 =============
在 C:\Users\"user_name"\AppData\Local\"app_name" 你可以看到 app.ico 出现在已安装的应用程序文件夹中。
希望对您有所帮助!
您可以在您的 TeamCity 服务器上托管图标,引用 Orn Kristjansson 在 TeamCity to serve static HTML page:
It's a Tomcat server, just go on your file system where you installed Teamcity and you should be able to find out where you can park some html that will then be available on the Teamcity urls.
因此将您的图标复制到 C:\...\TeamCity\webapps\ROOT\ 并且它们将作为静态文件提供。
从 NuGet 5.3.0 开始,您现在可以使用 <icon>
为您的包内的 JPEG 或 PNG 图标文件提供相对路径。
<package>
<metadata>
...
<icon>images\icon.png</icon>
...
</metadata>
<files>
...
<file src="..\icon.png" target="images\" />
...
</files>
</package>
来源:https://docs.microsoft.com/en-us/nuget/reference/nuspec#icon
<iconUrl>
现在是 deprecated.
PackageIconUrl is deprecated in favor of the PackageIcon property
Starting with NuGet 5.3 and Visual Studio 2019 version 16.3
所以方法是将以下内容添加到您的 .csproj
<PropertyGroup>
<PackageIcon>icon.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
<None Include="images\icon.png" Pack="true" PackagePath="\" />
</ItemGroup>
您最有可能更改包含 属性,具体取决于您的图片。
我们通过 Teamcity 托管我们自己的 nuget 服务器。除了指定 web url (http://....)?
之外,还有其他方法可以将图标添加到 .nuspec 文件吗?或者 Teamcity 中是否有可以托管这些图标的地方?
不,这是使用 iconUrl 属性 的唯一选项 - 请参阅 NuSpec Reference
我通常会选择在 CDN 服务上托管这样的共享图像,而不是 TeamCity - CloudFlare 提供免费服务。
您可以将文件添加到 nuspec 内容文件夹并以这种方式指定 link: "file://content/images/icon.ico" 您可以在此处找到更多信息:Packages containing Icon and License
如果您的图标在 GitHub 存储库中,您可以在 GitHub.com 上找到它,右键单击并 "Copy image address"。然后将其放入您的 .nuspec 中。这对我有用:
<iconUrl>https://github.com/tcs1896/SharpChecker/blob/master/SharpChecker/SharpChecker/SharpChecker/Icon.png?raw=true</iconUrl>
我有一个解决方案。我在 windows 10 上成功尝试。如果您必须在没有互联网的离线 PC 上安装您的应用程序,这将很有用。
第 1 步:
将标签添加到 nuspec 文件的内容。类似于以下内容:<metadata> <id>....</id> ... <iconUrl>file://C:\app.ico</iconUrl> ... <copyright>....</copyright> </metadata>
第 2 步:从上述 nuspec 生成 nupkg 文件
步骤 3:从 nupkg 文件生成 exe 文件
第 4 步: 将 app.ico 文件放在以下位置: C:\app.ico 。可以根据nuspec文件中的
<iconUrl>
选择任意位置。几乎 windows 台电脑有 "C" 个驱动盘。这样如果你使用 "C" 驱动器,就可以在另一台电脑上安装 .exe。第 5 步:运行 用于在 PC 上安装应用程序的 exe 文件。
========= 结果 =============
在 C:\Users\"user_name"\AppData\Local\"app_name" 你可以看到 app.ico 出现在已安装的应用程序文件夹中。
希望对您有所帮助!
您可以在您的 TeamCity 服务器上托管图标,引用 Orn Kristjansson 在 TeamCity to serve static HTML page:
It's a Tomcat server, just go on your file system where you installed Teamcity and you should be able to find out where you can park some html that will then be available on the Teamcity urls.
因此将您的图标复制到 C:\...\TeamCity\webapps\ROOT\ 并且它们将作为静态文件提供。
从 NuGet 5.3.0 开始,您现在可以使用 <icon>
为您的包内的 JPEG 或 PNG 图标文件提供相对路径。
<package>
<metadata>
...
<icon>images\icon.png</icon>
...
</metadata>
<files>
...
<file src="..\icon.png" target="images\" />
...
</files>
</package>
来源:https://docs.microsoft.com/en-us/nuget/reference/nuspec#icon
<iconUrl>
现在是 deprecated.
PackageIconUrl is deprecated in favor of the PackageIcon property
Starting with NuGet 5.3 and Visual Studio 2019 version 16.3
所以方法是将以下内容添加到您的 .csproj
<PropertyGroup>
<PackageIcon>icon.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
<None Include="images\icon.png" Pack="true" PackagePath="\" />
</ItemGroup>
您最有可能更改包含 属性,具体取决于您的图片。