我已将.NET Framework项目迁移到.NET Standard项目。
在.NET Framework项目中,我有一个带有附加文件配置的.nuspec文件,并使用" NuGet.exe pack"
创建nuget包 <files>
<file src="Install.ps1" target="tools\Install.ps1" />
</files
在.NET Standard项目中,我不再使用nuspec文件并切换到&#34; msbuild -t:Pack&#34;创建nuget包。我已经尝试将install.ps1设置为(BuildAction = Content),但后来我在日志中看到一个警告&#34;问题:PowerShell文件输出侧工具文件夹。&#34;在nupkg文件中,目录是&#34; content \ tools \ Install.ps1&#34;我需要&#34; tools \ Install.ps1&#34;。
答案 0 :(得分:1)
要将文件放入包中的其他路径,您可以使用<PackagePath>
元素中的<Content>
元素,如下所示:
<ItemGroup>
<Content Include="install.ps1">
<PackagePath>tools\</PackagePath>
</Content>
</ItemGroup>
(提供install.ps1
位于项目的根目录中,否则您将不得不调整Include
属性值)
有关详细信息,请在此处查看有关pack
MsBuild目标的文档:
https://github.com/NuGet/Home/wiki/Adding-nuget-pack-as-a-msbuild-target
答案 1 :(得分:0)
我已尝试将install.ps1设置为(BuildAction = Content),但后来我在日志“问题:PowerShell文件外侧工具文件夹”中看到警告。在nupkg文件中,目录是“content \ tools \ Install.ps1”,我需要“tools \ Install.ps1”
当您使用msbuild -t:Pack
创建nuget包时,msbuild / VS希望文件位于内容文件夹中。但是如果你仍然想要tools
目录中的install.ps1文件,你仍然可以使用.nuspec
文件和nuget.exe打包。
打包包的详细步骤:
按以下设置创建.nuspec:
<?xml version="1.0"?>
<package >
<metadata>
<id>TestInstall.ps1</id>
<version>1.0.0</version>
<authors>Test</authors>
<owners>Test</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Tag1 Tag2</tags>
</metadata>
<files>
<file src="Install.ps1" target="tools" />
<file src="bin\Debug\netstandard1.4\TestInstall.ps1.dll" target="lib\netstandard1.4" />
</files>
</package>
然后使用命令行:nuget.exe pack xxx.nuspec
打包包,您将在tools目录中获得包含Install.ps1
的包: