Pwershell hjälp (eller Windows kataloghantering)
Jag skulle ändra ett litet script vi använder på jobbet och det skapade en del oväntade problem. Scriptet är tänkt att bygga en mjukvara, lägga allt i en katalog, zippa denna och sen ta bort katalogen. Jag behövde lägga till en underkatalog i denna katalog som jag kopierar in några filer till som ska skickas med i zipfilen men på något sätt har jag lyckats skapa kataloger som ligger i något slags limbo. Jag kan inte ta bort dem för enligt Windows finns de inte kvar, men de finns ju där liksom.
Scriptet innan mina ändringar:
# The version of the release to build and publish
$releaseVersion=$args[0]
if(!$releaseVersion)
{
write-output "Usage: .\PackageAndZip '1.0.0'"
exit
}
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild"
$projectFile = ".\XXX\XXX.csproj"
$solutionFile = ".\XXX.sln"
$publishFile = "XXX\Properties\PublishProfiles\FolderProfile.pubxml"
$publishFolder = ".\publish"
# Build and deploy
& $msbuild /p:Configuration=Release /t:Rebuild $solutionFile
# Publish
& $msbuild $projectFile /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=$publishFile
# Copy CLI application
Copy-Item -Force XXX.Cli\bin\Release\net5.0\* $publishFolder
# Copy start script
Copy-Item -Force START.bat $publishFolder
# Zip file
$zipFilname = ".\XXX_v$releaseVersion.zip"
Compress-Archive -Path $publishFolder\* -DestinationPath $zipFilname -Force
# Delete publish folder
Remove-Item $publishFolder -Recurse
Också har jag försökt få till något ungefär som nedan, har testat lite olika grejer men jag tror det var ungefär så här det såg ut när det gick utför (mina tillägg i fetstil):
# The version of the release to build and publish
$releaseVersion=$args[0]
if(!$releaseVersion)
{
write-output "Usage: .\PackageAndZip '1.0.0'"
exit
}
$msbuild = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild"
$projectFile = ".\XXX\XXX.csproj"
$solutionFile = ".\XXX.sln"
$publishFile = "XXX\Properties\PublishProfiles\FolderProfile.pubxml"
$publishFolder = ".\publish"
# Build and deploy
& $msbuild /p:Configuration=Release /t:Rebuild $solutionFile
# Publish
& $msbuild $projectFile /p:Configuration=Release /p:DeployOnBuild=true /p:PublishProfile=$publishFile
# Copy CLI application
Copy-Item -Force XXX.Cli\bin\Release\net5.0\* $publishFolder
# Copy start script
Copy-Item -Force START.bat $publishFolder
# Copy packages to folder and include
$packageFolder = $publishfolder + "\Packages"
New-Item -Path $packageFolder -ItemType Directory
Copy-Item -Force *.mypackage $packageFolder
# Zip file
$zipFilname = ".\XXX_v$releaseVersion.zip"
Compress-Archive -Path $publishFolder\* -DestinationPath $zipFilname -Force
# Delete publish folder
Remove-Item $publishFolder -Recurse
Problemet är att detta skapade upp en katalog som heter 'publish ' (med ett mellanslag efteråt) som jag inte kan få bort. Eller egentligen två kataloger, en med ett mellanslag och en med två efter mina försök. När jag försöker säger Windows "Det gick inte att hitta objektet Det finns inte längre i D:\... Verifiera objektets plats och försök igen." I egenskaperna för katalogen så ser allt normalt ut förutom Säkerhet-fliken som har ett felmeddelande: "Den begärda säkerhetsinformationen är inte tillgänglig eller kan inte visas." med ett rött kryss. Vilket sätter stopp för mina försök att ta ägandeskap eller liknande.