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 0000000..7e6e4e7
Binary files /dev/null and b/Windows/CS/Framework4.0/Toprie/Output/JoyD.Windows.CS.Toprie.dll differ
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 0000000..7e6e4e7
Binary files /dev/null and b/Windows/CS/Framework4.0/Toprie/Output/Toprie.dll differ
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