我有一个项目,通过在 CSPROJ 文件中设置以下选项,直接在 Visual Studio 中生成 NuGet 包:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
这会导致生成的包包含所有已标记为“复制到输出目录=不复制”的嵌入资源文件。
遗憾的是,Visual Studio 的自动打包程序选择始终将这些文件复制到 NuGet 包中。
为了解决这个问题,我一直在研究编辑 .NUSPEC 文件并从命令行使用 NUGET.EXE 来创建包。
然后我遇到了一个新问题。通过使用 NUGET.EXE 而不是 Visual Studio,生成的包将依赖项部分显示为“不受支持”,我通过在“NuGet Explorer”中打开包来看到这一点:
这是用于创建包的 .bat 文件:
c:\nuget\nuget.exe config -Set repositoryPath="%USERPROFILE%\.nuget\packages"
c:\nuget\nuget.exe pack -IncludeReferencedProjects -properties Configuration=Release
这是 NUSPEC 文件:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Integrative.Lara</id>
<version>0.5.3</version>
<authors>Pablo Carbonell, Integrative Software LLC</authors>
<owners>Pablo Carbonell, Integrative Software LLC</owners>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<license type="file">LICENSE</license>
<projectUrl>https://github.com/integrativesoft/lara</projectUrl>
<iconUrl>https://integrative.b-cdn.net/Integrative.ico</iconUrl>
<description>Lara is ...</description>
<copyright>Copyright (c) 2019 Integrative Software LLC</copyright>
<tags>lara, web, html, html5, desktop, gui, cross, framework, mac, osx, platform, ui, blazor, razor</tags>
<repository url="https://github.com/integrativesoft/lara" />
<dependencies>
<group targetFramework=".NETStandard2.0">
<dependency id="Microsoft.AspNetCore" version="2.2.0" exclude="Build,Analyzers" />
<dependency id="Microsoft.AspNetCore.WebSockets" version="2.2.1" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>
有没有办法修复“不受支持”的目标?我也尝试使用“netstandard2.0”和其他标识符,但仍然得到相同的“不受支持”。
或者,有没有办法使用 Visual Studio 的自动包生成并阻止它在包中包含文件?
倚天杖
相关分类