对于旧的解决方案级别packages.config
,我有一个init.ps1
脚本,可以将tools
目录中的某些文件复制到解决方案的根目录中:
param($installPath, $toolsPath, $package)
$rootDir = (Get-Item $installPath).parent.parent.fullname
$filesSource = join-path $installPath 'tools'
Copy-Item "$filesSource/build.cake" $rootDir -Force
Copy-Item "$filesSource/build.ps1" $rootDir -Force
nuspec很简单:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
... the standard properties ...
</metadata>
<files>
<file src="build.cake" target="tools\build.cake" />
<file src="build.ps1" target="tools\build.ps1" />
<file src="nuget\init.ps1" target="tools\init.ps1" />
</files>
</package>
转到PackageReference
NuGet 3.0样式,安装路径作为系统级包区域(c:\ users \ me \ .nuget \ packages)出现。这意味着脚本的行为方式不同。
该软件包的目标是将我们的公共构建脚本(使用Cake)内部分发到我们的标准项目结构中。这使我们可以进行常规更改,并通过我们项目中的NuGet更新来消费它们。
我无法在网上找到关于如何复制此类行为的内容,只是功能仍在开发中,并且有不同的方法可以解决旧问题。
首先,这可能吗?其次,如果是这样,怎么样?
从好的方面来说,这可能是编写自定义dotnet
工具的借口。