簡體   English   中英

如何使用PowerShell將許可證文件添加為自定義NuGet包的一部分

[英]How to add license files as part of custom NuGet package using PowerShell

我遇到了PowerShell和NuGet的問題。 我創建了一個自定義包,它還包含lib目錄中的許可文件。 如果我在嘗試添加相關文件時使用以下代碼,那么它將被添加為鏈接(install.ps1):

param($installPath, $toolsPath, $package, $project)

function PathToUri([string] $path)
{
    return new-object Uri('file://' + $path.Replace("%","%25").Replace("#","%23").Replace("$","%24").Replace("+","%2B").Replace(",","%2C").Replace("=","%3D").Replace("@","%40").Replace("~","%7E").Replace("^","%5E"))
}

function UriToPath([System.Uri] $uri)
{
    return [System.Uri]::UnescapeDataString( $uri.ToString() ).Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar)
}

$licensePath = PathToUri( "$installPath\lib\Aspose.Pdf.lic" )
Write-Host "Lice $licensePath"
$projectPath = PathToUri( $project.FullName )
Write-Host "Proj $projectPath"
$relativePath = UriToPath( $projectPath.MakeRelativeUri($licensePath) )
Write-Host "Rele $relativePath"

$project.ProjectItems.AddFromFile($relativePath)

盡管有適當的相對翻譯,但我收到一個錯誤,即找不到文件。

Lice file:///T:/ConsoleApplication2/packages/Aspose.PDF.7.4.0/lib/Aspose.Pdf.lic
Proj file:///T:/ConsoleApplication2/ConsoleApplication2/ConsoleApplication2.csproj
Rele ..\packages\Aspose.PDF.7.4.0\lib\Aspose.Pdf.lic
Exception calling "AddFromFile" with "1" argument(s): "Cannot add the link because the source file '..\packages\Aspose.PDF.7.4.0\lib\Aspose.Pdf.lic' cannot be found."
At T:\ConsoleApplication2\packages\Aspose.PDF.7.4.0\tools\Install.ps1:20 char:1
+ $project.ProjectItems.AddFromFile($relativePath)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ComMethodTargetInvocation

如果我使用原始的非相對路徑,則會出現重復的文件錯誤。

我開始嘗試不同的方法,並最終讓它工作:

param($installPath, $toolsPath, $package, $project)

pushd $project.Properties.Item("FullPath").Value
$project.ProjectItems.AddFromFile( "$installPath\lib\Aspose.Pdf.lic" )
$project.ProjectItems.Item("Aspose.Pdf.Lic").Properties.Item("CopyToOutputDirectory").Value = 2
popd

干杯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM