我遇到了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文件没有问题,我现在使用的结构基本相同。谁能让我知道我是否正在尝试一些无法做到的事情?
答案 0 :(得分:0)
您可以通过在csproj文件中更新其元数据来打包任何项目:
<ItemGroup>
<None Update="install.ps1" CopyToOutputDirectory="PreserveNewest" Pack="true" PackagePath="\tools" />
</ItemGroup>
请注意,ps1文件仅针对使用packages.config
引用NuGet包的项目运行,您应该调查其他方法来完成您尝试对脚本执行的操作,因为PackageReference
现在更多可能会被使用。