Ich muss CopyLocal
bis false
für jede Baugruppe meines NuGet-Pakets festlegen. Ich mache es in der Install.ps1
Datei:Wie kann ich den Teilstring der .net-Version erhalten, anstatt direkt auf die `net35`-Zeichenfolge im` Install.ps1`-Skript zu zeigen?
param($installPath, $toolsPath, $package, $project)
$asm_folder = [System.IO.Path]::Combine($installPath, "lib\\net35");
$files = [System.IO.Directory]::EnumerateFiles($asm_folder,"*.dll","TopDirectoryOnly");
$array = New-Object System.Collections.ArrayList;
foreach ($file in $files) {
$file_name = [System.IO.Path]::GetFileNameWithoutExtension($file);
$array.Add($file_name);
}
foreach ($reference in $project.Object.References) {
if($array.Contains($reference.Name)) {
if($reference.CopyLocal -eq $true) {
$reference.CopyLocal = $false;
}
else {
$reference.CopyLocal = $true;
}
}
}
Wie kann ich die Teilzeichenfolge von .net-Version (des Zielprojekts) anstelle des net35
Zeichenfolge im Install.ps1
Skript direkt zeigen?
Aber ich möchte nur suchen, 'net'-Ordner, der dem Zielprojekt entspricht, statt Iteration durch alle' net'-Ordner. –
Ersetzen Sie $ referenz.CopyLocal = $ true; 'to $ reference.CopyLocal = $ false;'. Dein Code setzt 'CopyLocal' für' fals' nicht, auch wenn dieser Ersatz durchgeführt wurde. –