我们通过Teamcity托管自己的NuGet服务器。除了指定Web URL (http://...),还有其他方法可以将图标添加到.nuspec文件中吗?
或者在Teamcity中是否有可以托管这些图标的地方?
我们通过Teamcity托管自己的NuGet服务器。除了指定Web URL (http://...),还有其他方法可以将图标添加到.nuspec文件中吗?
或者在Teamcity中是否有可以托管这些图标的地方?
<icon>
来提供相对路径到您的JPEG或PNG图标文件,该文件位于您的软件包内。<package>
<metadata>
...
<icon>images\icon.png</icon>
...
</metadata>
<files>
...
<file src="..\icon.png" target="images\" />
...
</files>
</package>
来源: https://learn.microsoft.com/en-us/nuget/reference/nuspec#icon
<iconUrl>
现已弃用。
如果您的图标位于GitHub存储库中,可以在GitHub.com上找到它,右键单击并选择“复制图像地址”。然后将其放置在您的.nuspec中。 这对我很有效:
<iconUrl>https://github.com/tcs1896/SharpChecker/blob/master/SharpChecker/SharpChecker/SharpChecker/Icon.png?raw=true</iconUrl>
不,使用iconUrl属性是唯一的选择 - 参见NuSpec参考文档
我通常会选择在CDN服务上托管共享图像,而不是在TeamCity上 - CloudFlare提供免费服务。
以下是文档:
PackageIconUrl已弃用,应使用PackageIcon属性
从NuGet 5.3和Visual Studio 2019版本16.3开始
因此,实现方式是将以下内容添加到.csproj
文件中。
<PropertyGroup>
<PackageIcon>icon.png</PackageIcon>
</PropertyGroup>
<ItemGroup>
<None Include="YOUR_PATH_TO_ICON\icon.png" Pack="true" PackagePath="\" />
</ItemGroup>
你可以在TeamCity服务器上托管图标,引用Orn Kristjansson在TeamCity to serve static HTML page中的话:
这是一个Tomcat服务器,只需进入安装Teamcity的文件系统,您应该能够找到可以停放一些HTML的位置,然后这些HTML将在Teamcity URL上可用。
因此,将您的图标复制到C:\ ... \ TeamCity \ webapps \ ROOT \中,它们将作为静态文件提供。
我有一个解决方案。 我在Windows 10上已经尝试成功。 如果您必须在没有互联网的离线PC上安装应用程序,则此方法非常有用。
步骤1:
将<iconUrl>
标签添加到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 PC都有"C"驱动器。 因此,如果您使用“C”驱动器,则在其他PC上安装.exe很舒适。
步骤5:运行exe文件以在PC上安装应用程序。
========= 结果 =============
在 C:\Users\"user_name"\AppData\Local\"app_name" 中,您可以看到应用程序图标出现在已安装的应用程序文件夹中。
希望能对您有所帮助!
您可以将文件添加到nuspec内容文件夹中,并以以下方式指定链接: "file://content/images/icon.ico" 您可以在此处找到更多信息:包含图标和许可证的软件包