【发布时间】:2020-06-18 20:20:00
【问题描述】:
我已经创建了 .net 标准库。创建后,我尝试通过选择项目文件中存在的 pack 选项从我的 Visual Studio 中创建 nuget 包。 然后尝试在另一个控制台应用程序中使用本地创建的 .nupkg 文件,它工作正常。它显示了预期的依赖关系
然后我通过创建管道通过 Azure devops 部署了相同的库。现在在同一个控制台应用程序中,如果我从我的 Azure devops 源中选择 nuget,它不会显示任何依赖关系。 控制台应用程序安装后无法运行,它要求在控制台应用程序中再次安装依赖项。
这是我的项目文件。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Company>MyCompany</Company>
<Authors>Me</Authors>
<Version>1.0.0</Version>
<Description>Library for managing Azure KeyVault</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.KeyVault" Version="3.0.5" />
<PackageReference Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="5.2.7" />
</ItemGroup>
</Project>
我尝试按照here 的建议在项目文件中添加以下内容,但没有帮助。
<PackageReference Include="NuGet.Build.Tasks.Pack" Version="5.4.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
注意:我的项目中没有.nuspec 文件
我在这里错过了什么。
【问题讨论】:
-
Azure NuGet 任务上的这个 link 可能会有所帮助。
-
我的猜测是,在 Azure DevOps 上,您使用的是 NuGet 任务打包,它使用
nuget.exe。然而nuget.exe pack不支持PackageReference,所以你得到你所看到的。您应该改用 dotnet 任务,并以这种方式运行 pack。 -
@zivkan - 这就是问题所在。我用 dotnet pack 替换了 nuget pack,问题得到了解决。
-
@zivkan。如果您可以将您的解决方案转换为答案,那就太好了!
标签: c# azure azure-devops nuget nuget-package