From 810cb1c344c5d4da30540e945fd48af552b3ca2d Mon Sep 17 00:00:00 2001 From: zqm Date: Thu, 23 Oct 2025 11:16:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8F=91=E5=B8=83=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Windows/CS/Framework4.0/Toprie/.gitignore | 1 + .../Toprie/Output/JoyD.Windows.CS.Toprie.dll | Bin 0 -> 5120 bytes .../Output/Output/com.joyd.toprie.nuspec | 14 + .../CS/Framework4.0/Toprie/Output/Toprie.dll | Bin 0 -> 5120 bytes .../Toprie/Output/com.joyd.toprie.nuspec | 14 + .../CS/Framework4.0/Toprie/Output/publish.bat | 48 ++++ .../Toprie/Output/temp_nuget.config | 15 ++ Windows/CS/Framework4.0/Toprie/Toprie.sln | 6 + .../Toprie/Toprie/Camera.Designer.cs | 2 +- .../CS/Framework4.0/Toprie/Toprie/Camera.cs | 2 +- .../Toprie/Toprie/Properties/AssemblyInfo.cs | 16 +- .../Framework4.0/Toprie/Toprie/Toprie.csproj | 22 +- .../CS/Framework4.0/Toprie/publish-nuget.ps1 | 245 ++++++++++++++++++ 13 files changed, 374 insertions(+), 11 deletions(-) create mode 100644 Windows/CS/Framework4.0/Toprie/.gitignore create mode 100644 Windows/CS/Framework4.0/Toprie/Output/JoyD.Windows.CS.Toprie.dll create mode 100644 Windows/CS/Framework4.0/Toprie/Output/Output/com.joyd.toprie.nuspec create mode 100644 Windows/CS/Framework4.0/Toprie/Output/Toprie.dll create mode 100644 Windows/CS/Framework4.0/Toprie/Output/com.joyd.toprie.nuspec create mode 100644 Windows/CS/Framework4.0/Toprie/Output/publish.bat create mode 100644 Windows/CS/Framework4.0/Toprie/Output/temp_nuget.config create mode 100644 Windows/CS/Framework4.0/Toprie/publish-nuget.ps1 diff --git a/Windows/CS/Framework4.0/Toprie/.gitignore b/Windows/CS/Framework4.0/Toprie/.gitignore new file mode 100644 index 0000000..a4cd5e8 --- /dev/null +++ b/Windows/CS/Framework4.0/Toprie/.gitignore @@ -0,0 +1 @@ +/Test diff --git a/Windows/CS/Framework4.0/Toprie/Output/JoyD.Windows.CS.Toprie.dll b/Windows/CS/Framework4.0/Toprie/Output/JoyD.Windows.CS.Toprie.dll new file mode 100644 index 0000000000000000000000000000000000000000..7e6e4e7279e2909a592513f8b3cd87bbb56a33ff GIT binary patch literal 5120 zcmeHLU2GKB6+U-u9J5Xg4uK{?N+&T@4YfzMF~&~YWX-NIcCc}F*CuH!V0QO<88bVx zotX_ROyl+-*#JcL&fy?Akj`yM_*sC zF?-Oi(tTQ!=p>4QZVY&DwxQSX#qbfWR(K@vn;GoCYO{dgbE~7+)2zz>7W)dxEVL(J zcNZfu*r*y|My2f|x)tbeK18|HyK`Gy2KpOC|Lp3c1?{!yN4iuGWAB1e{c6>E0MzpPlROmU*D;oP2p%wJJM$~f) zkznTk(0U_ns}M}24V$WA)8V@IHIc8tR(*R@&^uU*Xr!*K1>L5xhzA#=PqISfQ*CRQ zhdH;UMz)EH2OQ7iJ$k3UxpQ+@KRdL7EWjSb*ZNhW@1y@4<0;=Y?Yzet$5+4}`qqgQ zJrA6hzjbJ0ID!5&=;N5Lb(`g6Ky$-zv3o7iN+$j(Hq*Kwey~&;ITw6JxQCC_T)~+~ z^qycoFHDzsHqt;ZDJbcY$SQgTrW@$nv<3V-1jBzQ{Aq1hoJ*&|QF0+6cIsx)khJa6rLf1s_)M zQ3VaawPY&%%L=Ac}z*O)GTy5Kz)E74T}2NFfRy8wRXVTgRUV)ZcBMVMwjw* zm1U@YVbsZ$EcpP%je>LyDtKAPwag58(%(B!@|{%Huq2cujX33mzT32O&OuL)r}VT_ zbWKUa3DYY&o{_O61*oKC#LYoDwIYmFbl8GpOWWs#v_4=Z^_*o9a^f4NEnP-j$D#>u5f7|| zMw4>dl37j<4OfSep7k9!R7sdd-gZ3S%z7a!ba&YHrRx+^(tX^_%4Omp&(f{RgH42( zIE1QtxE;4UZo#8$7^X+Vw&|OOWgb@9Q?aX~0kH8~=ASah`VyCZbZ+SSm8Mau*Mw-S z(@3lU($d0YGlPhtCmMf#cxv*lo~zH)HQYYfC@RnRJ$yB#BkOj%Msdus2M=YX+A8V& zF3yL5UU0-TLF?zAd2#;aPp+SM>H3i$&mB2-?TuIFzjNl=8?Vh>c#ddP(2fsLc=zJb z`D4egT|QMEJ9p|bjLg4y`TFS#bKgA*Q*+;ZZSL8Z|9s>Uo)mS1uM||z$CYqZ(<-Dz zpK;1L-49MItrxVex(~Hqoz=QKySHe;fQ^DS$j+^Oxo+9rv2}WDXGc%Ax38nW)7a9{ z-#=~i_R8Mw>HZwvXF<1g;W@*PXh_iA`q*H)dKTL&`|*qXv8S)NQ~%*K|#bU;Jhm*@iy-T9Hb<$VZ8Wbpoams1Lt@l0h!)n5YNwpps3~Ypn`U;z7f6( z_~b*&1V4WhOV=>5K-A%{hccW48bLiIP=Pp9z)xbdk6Dm|j6J=_|7-EB@xP3n$-X!C z+@4z(-p-!d6>#34d~5uH>HEt^(`T~1$(NJ=nq^-$p`HzG6_vkbWCtY$>~b5yEM*lj z$_^Z6QS~zc4cy+!|KgJPmixhL*H|-l5@TJAUd%}s>Zs1@$1ArU`kYl?>Dutgs_`uJ zOGmZJ`OCr2gRsbzSqd->x~P1UpmG??RXfo*ifchTVKc8Rau$n-kXIp3`!O4-%r50= zbQTA@8ywq2Du*?W#H+(}FY*$-#= zs4>QHiUcBc5nGN*SR=nCa|D`qj!rY^%h1pvU(6Q%woz-fbo`AgcH?^WsWAhH)>E-( j5K$SK`cLE3qI?2Az8TPh|1)^|BmL*b$2VR7Z;}5ST38Gu literal 0 HcmV?d00001 diff --git a/Windows/CS/Framework4.0/Toprie/Output/Output/com.joyd.toprie.nuspec b/Windows/CS/Framework4.0/Toprie/Output/Output/com.joyd.toprie.nuspec new file mode 100644 index 0000000..fe88127 --- /dev/null +++ b/Windows/CS/Framework4.0/Toprie/Output/Output/com.joyd.toprie.nuspec @@ -0,0 +1,14 @@ + + + + com.joyd.toprie + 1.0.0.0 + Toprie Thermal Camera Control + JoyD + Thermal camera control library + Copyright 2025 + + + + + diff --git a/Windows/CS/Framework4.0/Toprie/Output/Toprie.dll b/Windows/CS/Framework4.0/Toprie/Output/Toprie.dll new file mode 100644 index 0000000000000000000000000000000000000000..7e6e4e7279e2909a592513f8b3cd87bbb56a33ff GIT binary patch literal 5120 zcmeHLU2GKB6+U-u9J5Xg4uK{?N+&T@4YfzMF~&~YWX-NIcCc}F*CuH!V0QO<88bVx zotX_ROyl+-*#JcL&fy?Akj`yM_*sC zF?-Oi(tTQ!=p>4QZVY&DwxQSX#qbfWR(K@vn;GoCYO{dgbE~7+)2zz>7W)dxEVL(J zcNZfu*r*y|My2f|x)tbeK18|HyK`Gy2KpOC|Lp3c1?{!yN4iuGWAB1e{c6>E0MzpPlROmU*D;oP2p%wJJM$~f) zkznTk(0U_ns}M}24V$WA)8V@IHIc8tR(*R@&^uU*Xr!*K1>L5xhzA#=PqISfQ*CRQ zhdH;UMz)EH2OQ7iJ$k3UxpQ+@KRdL7EWjSb*ZNhW@1y@4<0;=Y?Yzet$5+4}`qqgQ zJrA6hzjbJ0ID!5&=;N5Lb(`g6Ky$-zv3o7iN+$j(Hq*Kwey~&;ITw6JxQCC_T)~+~ z^qycoFHDzsHqt;ZDJbcY$SQgTrW@$nv<3V-1jBzQ{Aq1hoJ*&|QF0+6cIsx)khJa6rLf1s_)M zQ3VaawPY&%%L=Ac}z*O)GTy5Kz)E74T}2NFfRy8wRXVTgRUV)ZcBMVMwjw* zm1U@YVbsZ$EcpP%je>LyDtKAPwag58(%(B!@|{%Huq2cujX33mzT32O&OuL)r}VT_ zbWKUa3DYY&o{_O61*oKC#LYoDwIYmFbl8GpOWWs#v_4=Z^_*o9a^f4NEnP-j$D#>u5f7|| zMw4>dl37j<4OfSep7k9!R7sdd-gZ3S%z7a!ba&YHrRx+^(tX^_%4Omp&(f{RgH42( zIE1QtxE;4UZo#8$7^X+Vw&|OOWgb@9Q?aX~0kH8~=ASah`VyCZbZ+SSm8Mau*Mw-S z(@3lU($d0YGlPhtCmMf#cxv*lo~zH)HQYYfC@RnRJ$yB#BkOj%Msdus2M=YX+A8V& zF3yL5UU0-TLF?zAd2#;aPp+SM>H3i$&mB2-?TuIFzjNl=8?Vh>c#ddP(2fsLc=zJb z`D4egT|QMEJ9p|bjLg4y`TFS#bKgA*Q*+;ZZSL8Z|9s>Uo)mS1uM||z$CYqZ(<-Dz zpK;1L-49MItrxVex(~Hqoz=QKySHe;fQ^DS$j+^Oxo+9rv2}WDXGc%Ax38nW)7a9{ z-#=~i_R8Mw>HZwvXF<1g;W@*PXh_iA`q*H)dKTL&`|*qXv8S)NQ~%*K|#bU;Jhm*@iy-T9Hb<$VZ8Wbpoams1Lt@l0h!)n5YNwpps3~Ypn`U;z7f6( z_~b*&1V4WhOV=>5K-A%{hccW48bLiIP=Pp9z)xbdk6Dm|j6J=_|7-EB@xP3n$-X!C z+@4z(-p-!d6>#34d~5uH>HEt^(`T~1$(NJ=nq^-$p`HzG6_vkbWCtY$>~b5yEM*lj z$_^Z6QS~zc4cy+!|KgJPmixhL*H|-l5@TJAUd%}s>Zs1@$1ArU`kYl?>Dutgs_`uJ zOGmZJ`OCr2gRsbzSqd->x~P1UpmG??RXfo*ifchTVKc8Rau$n-kXIp3`!O4-%r50= zbQTA@8ywq2Du*?W#H+(}FY*$-#= zs4>QHiUcBc5nGN*SR=nCa|D`qj!rY^%h1pvU(6Q%woz-fbo`AgcH?^WsWAhH)>E-( j5K$SK`cLE3qI?2Az8TPh|1)^|BmL*b$2VR7Z;}5ST38Gu literal 0 HcmV?d00001 diff --git a/Windows/CS/Framework4.0/Toprie/Output/com.joyd.toprie.nuspec b/Windows/CS/Framework4.0/Toprie/Output/com.joyd.toprie.nuspec new file mode 100644 index 0000000..fe88127 --- /dev/null +++ b/Windows/CS/Framework4.0/Toprie/Output/com.joyd.toprie.nuspec @@ -0,0 +1,14 @@ + + + + com.joyd.toprie + 1.0.0.0 + Toprie Thermal Camera Control + JoyD + Thermal camera control library + Copyright 2025 + + + + + diff --git a/Windows/CS/Framework4.0/Toprie/Output/publish.bat b/Windows/CS/Framework4.0/Toprie/Output/publish.bat new file mode 100644 index 0000000..743f747 --- /dev/null +++ b/Windows/CS/Framework4.0/Toprie/Output/publish.bat @@ -0,0 +1,48 @@ +@echo off + +echo 开始打包和发布NuGet包... + +REM 设置参数 +set VERSION=1.0.0.0 +set PACKAGE_ID=com.joyd.toprie +set DLL_PATH=Toprie.dll +set NUGET_SERVER=http://47.111.181.23:8081/repository/nuget-releases/ +set API_KEY=admin:admin + +REM 创建临时项目文件 +(echo + echo + echo net40 + echo %PACKAGE_ID% + echo %VERSION% + echo Toprie Thermal Camera Control + echo JoyD + echo Thermal camera control library + echo Copyright 2025 + echo . + echo + echo + echo + echo + echo ) > Temp.csproj + +REM 打包 +nuget pack Temp.csproj -Build -Properties Configuration=Release + +REM 发布 +for %%f in (*.nupkg) do ( + echo 发布包: %%f + nuget push %%f %API_KEY% -Source %NUGET_SERVER% + if not errorlevel 1 ( + echo 发布成功! + exit /b 0 + ) else ( + echo 发布失败,但包已创建: %%f + ) +) + +echo 清理临时文件 +if exist Temp.csproj del Temp.csproj + +echo 发布脚本执行完成。 +pause \ No newline at end of file diff --git a/Windows/CS/Framework4.0/Toprie/Output/temp_nuget.config b/Windows/CS/Framework4.0/Toprie/Output/temp_nuget.config new file mode 100644 index 0000000..7f84c65 --- /dev/null +++ b/Windows/CS/Framework4.0/Toprie/Output/temp_nuget.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Windows/CS/Framework4.0/Toprie/Toprie.sln b/Windows/CS/Framework4.0/Toprie/Toprie.sln index ab618f1..6ae5176 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie.sln +++ b/Windows/CS/Framework4.0/Toprie/Toprie.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 15.0.36324.19 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Toprie", "Toprie\Toprie.csproj", "{E078D2E2-7F70-4C68-90A5-99FA66E62F9D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{C309F3A2-0E77-42E4-BE3D-1448E7DFA433}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +17,10 @@ Global {E078D2E2-7F70-4C68-90A5-99FA66E62F9D}.Debug|Any CPU.Build.0 = Debug|Any CPU {E078D2E2-7F70-4C68-90A5-99FA66E62F9D}.Release|Any CPU.ActiveCfg = Release|Any CPU {E078D2E2-7F70-4C68-90A5-99FA66E62F9D}.Release|Any CPU.Build.0 = Release|Any CPU + {C309F3A2-0E77-42E4-BE3D-1448E7DFA433}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C309F3A2-0E77-42E4-BE3D-1448E7DFA433}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C309F3A2-0E77-42E4-BE3D-1448E7DFA433}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C309F3A2-0E77-42E4-BE3D-1448E7DFA433}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs index e204abc..c39eabf 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.Designer.cs @@ -1,4 +1,4 @@ -namespace Toprie +namespace JoyD.Windows.CS.Toprie { partial class Camera { diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs index cdaee18..96efa0b 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Camera.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Windows.Forms; -namespace Toprie +namespace JoyD.Windows.CS.Toprie { public partial class Camera : UserControl { diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Properties/AssemblyInfo.cs b/Windows/CS/Framework4.0/Toprie/Toprie/Properties/AssemblyInfo.cs index 2254fc7..2756780 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Properties/AssemblyInfo.cs +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Properties/AssemblyInfo.cs @@ -1,17 +1,17 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的一般信息由以下 // 控制。更改这些特性值可修改 // 与程序集关联的信息。 -[assembly: AssemblyTitle("Toprie")] -[assembly: AssemblyDescription("")] +[assembly: AssemblyTitle("托普瑞热像仪控件库")] +[assembly: AssemblyDescription("托普瑞热像仪控件库,提供热像仪图像显示和控制功能")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Toprie")] -[assembly: AssemblyCopyright("Copyright © 2025")] -[assembly: AssemblyTrademark("")] +[assembly: AssemblyCompany("JoyD")] +[assembly: AssemblyProduct("com.joyd.toprie")] +[assembly: AssemblyCopyright("Copyright © 2025 JoyD")] +[assembly: AssemblyTrademark("JoyD")] [assembly: AssemblyCulture("")] // 将 ComVisible 设置为 false 会使此程序集中的类型 @@ -34,3 +34,5 @@ using System.Runtime.InteropServices; // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] + +// NuGet包相关信息已在项目文件中配置 diff --git a/Windows/CS/Framework4.0/Toprie/Toprie/Toprie.csproj b/Windows/CS/Framework4.0/Toprie/Toprie/Toprie.csproj index 74e1638..cee9266 100644 --- a/Windows/CS/Framework4.0/Toprie/Toprie/Toprie.csproj +++ b/Windows/CS/Framework4.0/Toprie/Toprie/Toprie.csproj @@ -7,11 +7,29 @@ {E078D2E2-7F70-4C68-90A5-99FA66E62F9D} Library Properties - Toprie - Toprie + JoyD.Windows.CS + JoyD.Windows.CS.Toprie v4.0 512 true + + com.joyd.toprie + 1.0.0.0 + JoyD + 托普瑞热像仪控件库,提供热像仪图像显示和控制功能 + Copyright © 2025 JoyD + http://joyd.com/ + http://joyd.com/repo/toprie + Git + false + true + true + + + + + + true true diff --git a/Windows/CS/Framework4.0/Toprie/publish-nuget.ps1 b/Windows/CS/Framework4.0/Toprie/publish-nuget.ps1 new file mode 100644 index 0000000..23bd38b --- /dev/null +++ b/Windows/CS/Framework4.0/Toprie/publish-nuget.ps1 @@ -0,0 +1,245 @@ +# 托普瑞控制库发布脚本 请在 chcp 65001下运行 + +# 配置参数 +$scriptDir = Get-Location +$output = Join-Path $scriptDir "Output" +$server = "http://47.111.181.23:8081/repository/nuget-releases/" +$key = "admin:admin" +$packageId = "com.joyd.toprie" +$version = "1.0.0.0" +$actualDllName = "JoyD.Windows.CS.Toprie.dll" +$targetDllName = "Toprie.dll" +$nupkgFileName = "$packageId.$version.nupkg" +$nupkgFilePath = Join-Path $output $nupkgFileName + +Write-Host "========== 托普瑞库发布开始 ==========" + +# 创建输出目录 +if (!(Test-Path $output)) { + New-Item -ItemType Directory -Path $output -Force | Out-Null + Write-Host "已创建输出目录: $output" +} else { + Write-Host "使用现有输出目录: $output" +} + +# 清理之前的构建文件 +Write-Host "清理之前的构建文件.." +if (Test-Path "$output\$actualDllName") { Remove-Item -Path "$output\$actualDllName" -Force } +if (Test-Path "$output\$targetDllName") { Remove-Item -Path "$output\$targetDllName" -Force } +if (Test-Path "$output\$nupkgFileName") { Remove-Item -Path "$output\$nupkgFileName" -Force } +if (Test-Path "$output\$packageId.nuspec") { Remove-Item -Path "$output\$packageId.nuspec" -Force } + +# 构建项目 +Write-Host "1. 正在构建项目..." +Write-Host "当前目录: $scriptDir" +dotnet build "$scriptDir\Toprie\Toprie.csproj" -c Release -o "$output" + +if ($LASTEXITCODE -ne 0) { + Write-Host "错误: 构建失败!" -ForegroundColor Red + exit 1 +} + +# 验证DLL是否存在 +if (!(Test-Path "$output\$actualDllName")) { + Write-Host "错误: 在输出目录中找不到$actualDllName!" -ForegroundColor Red + exit 1 +} + +# 复制DLL并重命名用于打包 +Copy-Item -Path "$output\$actualDllName" -Destination "$output\$targetDllName" -Force +Write-Host "已将 $actualDllName 复制并重命名为$targetDllName 用于打包" + +Write-Host "2. 准备打包文件..." + +# 在Output目录创建NuGet.Config文件,这样dotnet nuget push命令就能正确找到它 +$localNugetConfigPath = Join-Path -Path $output -ChildPath "NuGet.Config" + +# 创建包含全面配置的NuGet.Config文件 +$nugetConfigContent = @" + + + + + + + + + + + + + + + + + + + + + +"@ + +# 设置配置文件 +Set-Content -Path $localNugetConfigPath -Value $nugetConfigContent +Write-Host "已在Output目录设置NuGet.Config: $localNugetConfigPath" + +# 创建一个简单的.csproj文件用于打包,无需还原 +$tempProjContent = @" + + + net40 + $packageId + $version + Toprie Thermal Camera Control + JoyD + Thermal camera control library + Copyright 2025 + . + true + true + true + true + + + + + +"@ + +$tempProjPath = "$output\Temp.csproj" +Set-Content -Path $tempProjPath -Value $tempProjContent + +# 在输出目录中创建包结构 +Write-Host "3. 创建NuGet包.." + +# 在输出目录中创建简化的nuspec文件 +$nuspecPath = Join-Path $output "$packageId.nuspec" +$nuspecContent = @" + + + + $packageId + $version + Toprie Thermal Camera Control + JoyD + Thermal camera control library + Copyright 2025 + + + + + +"@ + +Set-Content -Path $nuspecPath -Value $nuspecContent +Write-Host "已创建nuspec文件: $nuspecPath" + +# 手动创建nupkg包结构 +Write-Host "创建包结构.." +$tempDir = Join-Path $output "temp_pkg" + +# 确保临时目录存在 +if (!(Test-Path $tempDir)) { + New-Item -ItemType Directory -Path $tempDir -Force | Out-Null +} + +# 创建lib/net40子目录 +$libDir = Join-Path $tempDir "lib\net40" +if (!(Test-Path $libDir)) { + New-Item -ItemType Directory -Path $libDir -Force | Out-Null +} + +# 复制DLL到包结构中 +$sourceDllPath = Join-Path $output $targetDllName +$destDllPath = Join-Path $libDir $targetDllName +Copy-Item -Path $sourceDllPath -Destination $destDllPath -Force +Write-Host "已复制$sourceDllPath 到$destDllPath" + +# 创建[Content_Types].xml文件(有效nupkg必需) +$contentTypesPath = Join-Path $tempDir "[Content_Types].xml" +# 使用-LiteralPath参数避免方括号被解释为通配符 +Set-Content -LiteralPath $contentTypesPath -Value "" +Write-Host "已在 $contentTypesPath 创建[Content_Types].xml" + +# 创建zip文件并将其重命名为nupkg +$zipPath = Join-Path $output "temp_manual.zip" + +# 清理任何现有文件 +if (Test-Path $zipPath) { + Remove-Item -Path $zipPath -Force + Write-Host "已移除现有的zip文件" +} +if (Test-Path $nupkgFilePath) { + Remove-Item -Path $nupkgFilePath -Force + Write-Host "已移除现有的nupkg文件" +} + +Write-Host "从$tempDir\* 创建zip归档到$zipPath..." +Compress-Archive -Path "$tempDir\*" -DestinationPath $zipPath -Force + +if (Test-Path $zipPath) { + Write-Host "正在将$zipPath 重命名为 $nupkgFilePath..." + Rename-Item -Path $zipPath -NewName $nupkgFileName -Force + + if (Test-Path $nupkgFilePath) { + $nupkgFile = Get-Item $nupkgFilePath + Write-Host "✅ 成功创建包: $($nupkgFile.FullName)" + Write-Host "包大小: $([math]::Round($nupkgFile.Length / 1KB, 2)) KB" + } +} + +# 清理临时文件夹 +Remove-Item -Path $tempDir -Recurse -Force +Write-Host "已清理临时文件夹" + +# 检查包文件是否存在 +if (Test-Path $nupkgFilePath) { + $nupkgFile = Get-Item $nupkgFilePath + Write-Host "找到包文件: $($nupkgFile.FullName)" + Write-Host "4. 正在发布包到仓库..." + + # 使用curl直接发布到HTTP仓库 + Write-Host "使用curl直接发布到HTTP仓库..." + + # 构建curl命令 + $curlCommand = "curl.exe -X PUT -u $key -F package=@$nupkgFilePath $server" + Write-Host "正在执行: $curlCommand" + + # 执行curl命令(使用curl.exe避免PowerShell别名冲突) + & curl.exe -X PUT -u $key -F package=@$nupkgFilePath $server + + if ($LASTEXITCODE -eq 0) { + Write-Host "✅ 成功: 包发布成功" -ForegroundColor Green + Write-Host "包ID: $packageId" + Write-Host "版本: $version" + Write-Host "仓库: $server" + } else { + Write-Host "❌ 错误: 包创建成功但发布失败" -ForegroundColor Red + Write-Host "包文件位置: $($nupkgFile.FullName)" + Write-Host " +您可以尝试手动发布(使用curl命令):" + Write-Host "curl -X PUT -u admin:admin -F \"package=@$($nupkgFile.FullName)\" $server" + Write-Host " +或者直接在项目中使用创建的包文件" + } +} else { + Write-Host "❌ 错误: 未创建NuGet包" -ForegroundColor Red + Write-Host "请检查dotnet CLI是否正确配置" + Write-Host "您可以尝试使用Output目录中的文件手动创建包" +} + +# 最终清理 +Write-Host "正在执行最终清理.." +if (Test-Path "$output\Temp.csproj") { + Remove-Item -Path "$output\Temp.csproj" -Force + Write-Host "已移除Temp.csproj" +} + +# 删除我们在Output目录创建的NuGet.Config文件 +if (Test-Path $localNugetConfigPath) { + Remove-Item -Path $localNugetConfigPath -Force + Write-Host "已删除临时创建的NuGet.Config" +} + +Write-Host " +发布过程完成" \ No newline at end of file