VS2017 msbuild / nuget pack

时间:2017-10-16 22:54:51

标签: msbuild nuget

我遇到了nuget(版本4.3.0.4406)和msbuild(版本15.3.409.57025)的问题。我正在使用VS2017来创建类库。使用VS2017的 pack 功能,我可以成功创建一个nuget包(我可以在另一个解决方案中安装)。现在我想将install.ps1脚本添加到安装nuget时运行的tools文件夹中的包。

在csproj文件中,我指定了多个目标框架:

<TargetFrameworks>net45;net452</TargetFrameworks>

我无法弄清楚如何做到这一点。我使用nuget -spec命令创建了一个nuspec文件,该命令生成一个简单的nuspec文件。当我使用带有/ t:pack和/p:Nuspecfile=path.to.nuspec的msbuild命令时,我收到以下错误:

NuGet.Build.Tasks.Pack.targets(141,5):错误:值不能为null或空字符串。

我有来自其他项目(来自VS2015解决方案)的nuspec文件没有问题,我现在使用的结构基本相同。谁能让我知道我是否正在尝试一些无法做到的事情?

1 个答案:

答案 0 :(得分:0)

您可以通过在csproj文件中更新其元数据来打包任何项目:

<ItemGroup>
  <None Update="install.ps1" CopyToOutputDirectory="PreserveNewest" Pack="true" PackagePath="\tools" />
</ItemGroup>

请注意,ps1文件仅针对使用packages.config引用NuGet包的项目运行,您应该调查其他方法来完成您尝试对脚本执行的操作,因为PackageReference现在更多可能会被使用。