From ca4488dcb8d88fdab614888685e0001cffa723d6 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Tue, 18 Nov 2025 18:27:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=AE=89=E8=A3=85=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=9A=84=E8=A6=81=E6=B1=82=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E7=9B=AE=E6=A0=87?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=B8=BAx64=EF=BC=8C=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=BARelease?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- NavisworksTransport.UnitTests.csproj | 4 +- NavisworksTransport.sln | 14 ++ NavisworksTransportPlugin.csproj | 72 ++----- Properties/Resources.Designer.cs | 63 ++++++ Properties/Resources.resx | 101 ++++++++++ compile.bat | 5 +- deploy-plugin.bat | 4 +- doc/design/2026/MSI_Installation_Guide.md | 224 ++++++++++++++++------ 8 files changed, 361 insertions(+), 126 deletions(-) create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx diff --git a/NavisworksTransport.UnitTests.csproj b/NavisworksTransport.UnitTests.csproj index 12be7f2..77f2cd6 100644 --- a/NavisworksTransport.UnitTests.csproj +++ b/NavisworksTransport.UnitTests.csproj @@ -70,13 +70,13 @@ - bin\Debug\NavisworksTransportPlugin.dll + bin\x64\Debug\NavisworksTransportPlugin.dll True - packages\RoyT.AStar.2.1.0\lib\netstandard2.0\Roy-T.AStar.dll + packages\RoyT.AStar.3.0.2\lib\netstandard2.0\Roy-T.AStar.dll True diff --git a/NavisworksTransport.sln b/NavisworksTransport.sln index e977bc4..ad246c3 100644 --- a/NavisworksTransport.sln +++ b/NavisworksTransport.sln @@ -5,16 +5,30 @@ VisualStudioVersion = 17.14.36203.30 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NavisworksTransportPlugin", "NavisworksTransportPlugin.csproj", "{1A0124F6-3DEB-4153-8760-F568AD9393EE}" EndProject +Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "NavisworksTransport.Setup", "..\NavisworksTransport.Setup\NavisworksTransport.Setup.vdproj", "{E1955F72-A686-9398-1C6A-936493D9211F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Debug|x64.ActiveCfg = Debug|x64 + {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Debug|x64.Build.0 = Debug|x64 {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Release|Any CPU.Build.0 = Release|Any CPU + {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Release|x64.ActiveCfg = Release|x64 + {1A0124F6-3DEB-4153-8760-F568AD9393EE}.Release|x64.Build.0 = Release|x64 + {E1955F72-A686-9398-1C6A-936493D9211F}.Debug|Any CPU.ActiveCfg = Debug + {E1955F72-A686-9398-1C6A-936493D9211F}.Debug|x64.ActiveCfg = Debug + {E1955F72-A686-9398-1C6A-936493D9211F}.Debug|x64.Build.0 = Debug + {E1955F72-A686-9398-1C6A-936493D9211F}.Release|Any CPU.ActiveCfg = Release + {E1955F72-A686-9398-1C6A-936493D9211F}.Release|x64.ActiveCfg = Release + {E1955F72-A686-9398-1C6A-936493D9211F}.Release|x64.Build.0 = Release EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/NavisworksTransportPlugin.csproj b/NavisworksTransportPlugin.csproj index 0476d99..7a6de1e 100644 --- a/NavisworksTransportPlugin.csproj +++ b/NavisworksTransportPlugin.csproj @@ -1,10 +1,9 @@ - Debug - AnyCPU + x64 {1A0124F6-3DEB-4153-8760-F568AD9393EE} Library Properties @@ -14,27 +13,24 @@ 512 true - - + true - full - false - bin\Debug\ + bin\x64\Debug\ DEBUG;TRACE;NAVISWORKS_2026 - prompt - 4 + full x64 - - - - pdbonly - true - bin\Release\ - TRACE;NAVISWORKS_2026 + 7.3 + prompt + + + bin\x64\Release\ + TRACE;NAVISWORKS_2026 + true + pdbonly + x64 + 7.3 prompt - 4 - @@ -53,7 +49,6 @@ ..\..\..\..\Program Files\Autodesk\Navisworks Manage 2026\Autodesk.Navisworks.Controls.dll False - ..\..\..\..\Program Files\Autodesk\Navisworks Manage 2026\Autodesk.Navisworks.ComApi.dll @@ -64,8 +59,6 @@ False False - - @@ -78,47 +71,39 @@ - - packages\RoyT.AStar.3.0.2\lib\netstandard2.0\Roy-T.AStar.dll True - packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.118.0\lib\net46\System.Data.SQLite.dll True - packages\Tomlyn.0.19.0\lib\netstandard2.0\Tomlyn.dll True - packages\geometry4Sharp.1.0.0\lib\net48\geometry4Sharp.dll True - - - @@ -127,24 +112,18 @@ - - - - - - @@ -152,7 +131,6 @@ - @@ -163,24 +141,19 @@ - - - - - @@ -196,7 +169,6 @@ - @@ -204,7 +176,6 @@ - LogisticsControlPanel.xaml @@ -251,7 +222,6 @@ MediaControlBar.xaml - @@ -263,17 +233,13 @@ - - - - @@ -283,7 +249,6 @@ - @@ -300,11 +265,9 @@ - - @@ -376,11 +339,8 @@ Designer MSBuild:Compile - - - @@ -388,9 +348,7 @@ NavisworksTransport.Tian.name.txt - - - + \ No newline at end of file diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..03c1537 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// 此代码由工具生成。 +// 运行时版本:4.0.30319.42000 +// +// 对此文件的更改可能会导致不正确的行为,并且如果 +// 重新生成代码,这些更改将会丢失。 +// +//------------------------------------------------------------------------------ + +namespace NavisworksTransport.Properties { + using System; + + + /// + /// 一个强类型的资源类,用于查找本地化的字符串等。 + /// + // 此类是由 StronglyTypedResourceBuilder + // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。 + // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen + // (以 /str 作为命令选项),或重新生成 VS 项目。 + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// 返回此类使用的缓存的 ResourceManager 实例。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NavisworksTransport.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// 重写当前线程的 CurrentUICulture 属性,对 + /// 使用此强类型资源类的所有资源查找执行重写。 + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..4fdb1b6 --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/compile.bat b/compile.bat index b24ba47..3c5fb30 100644 --- a/compile.bat +++ b/compile.bat @@ -8,9 +8,6 @@ REM Check if MSBuild exists, try alternative paths if not exist %MSBUILD_PATH% ( set MSBUILD_PATH="C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\MSBuild.exe" ) -if not exist %MSBUILD_PATH% ( - set MSBUILD_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\MSBuild.exe" -) if not exist %MSBUILD_PATH% ( echo MSBuild not found. Please install Visual Studio 2022 or Build Tools. echo dotnet build is not compatible with .NET Framework WPF projects. @@ -21,7 +18,7 @@ echo Using MSBuild: %MSBUILD_PATH% REM Build the project echo Building project... -%MSBUILD_PATH% "NavisworksTransportPlugin.csproj" /p:Configuration=Debug /p:Platform=AnyCPU /verbosity:minimal +%MSBUILD_PATH% "NavisworksTransportPlugin.csproj" /p:Configuration=Release /p:Platform=x64 /verbosity:minimal :end if %ERRORLEVEL% EQU 0 ( diff --git a/deploy-plugin.bat b/deploy-plugin.bat index 62c08cb..bc0ebd8 100644 --- a/deploy-plugin.bat +++ b/deploy-plugin.bat @@ -3,7 +3,7 @@ set "TARGET_DIR=C:\ProgramData\Autodesk\Navisworks Manage 2026\plugins\Naviswork if not exist "%TARGET_DIR%" mkdir "%TARGET_DIR%" -copy "bin\Debug\NavisworksTransportPlugin.dll" "%TARGET_DIR%\" >nul -if exist "bin\Debug\NavisworksTransport.Tian.name.txt" copy "bin\Debug\NavisworksTransport.Tian.name.txt" "%TARGET_DIR%\" >nul +copy "bin\x64\Release\NavisworksTransportPlugin.dll" "%TARGET_DIR%\" >nul +if exist "bin\x64\Release\NavisworksTransport.Tian.name.txt" copy "bin\x64\Release\NavisworksTransport.Tian.name.txt" "%TARGET_DIR%\" >nul echo Plugin deployed successfully! \ No newline at end of file diff --git a/doc/design/2026/MSI_Installation_Guide.md b/doc/design/2026/MSI_Installation_Guide.md index d47e6c8..087e86c 100644 --- a/doc/design/2026/MSI_Installation_Guide.md +++ b/doc/design/2026/MSI_Installation_Guide.md @@ -48,15 +48,31 @@ ### 步骤 2:配置项目属性 -在解决方案资源管理器中右键点击 `NavisworksTransport.Setup` → `属性` +#### 注意事项 -| 属性名 | 值 | 说明 | -|--------|-----|-----| -| ProductName | NavisworksTransport 2026 | 产品名称 | -| Manufacturer | YourCompany | 制造商 | -| Version | 1.0.0 | 版本号 | -| Title | NavisworksTransport Setup | 安装程序标题 | -| Subject | Navisworks 2026 物流路径规划插件 | 主题 | +由于Visual Studio和Installer Projects插件版本差异,某些图形界面设置方法可能不可用或显示不完整。因此,推荐使用以下最可靠的配置方法: + +#### 手动编辑vdproj文件(唯一可靠方法) + +直接编辑项目文件是最可靠的配置方式,适用于所有Visual Studio版本: + +1. 在解决方案资源管理器中选中 `NavisworksTransport.Setup` 项目 +2. 点击菜单栏 `项目` → `卸载项目` +3. 再次右键点击项目 → `编辑 NavisworksTransport.Setup.vdproj` +4. 在打开的文件中找到 `"Product"` 节点(通常在文件末尾附近) +5. 直接修改以下属性值: + +```ini +"ProductName" = "8:NavisworksTransport 2026" +"Manufacturer" = "8:YourCompany" +"ProductVersion" = "8:1.0.0" +"Title" = "8:NavisworksTransport Setup" +"Subject" = "8:Navisworks 2026 物流路径规划插件" +``` + +#### 高级设置说明 + +如需配置构建事件、系统必备项等高级设置,请参考Visual Studio Installer Projects的官方文档,或根据实际需要在vdproj文件中查找并修改对应节点的属性值。 > **升级代码**: 首次安装后会生成 `UpgradeCode`,**升级时保持不变**,版本号变更会触发自动升级 @@ -81,7 +97,7 @@ - 项目:`NavisworksTransportPlugin` - 选择配置:`Release` -- 平台:`x64` +- 平台:`x64`(**重要:必须与项目平台一致,否则会出现平台不兼容错误**) - 输出类型:选择 `Primary output` - 点击 `确定` @@ -109,14 +125,62 @@ - `Condition`: (留空,表示始终安装) - `Register`: NoRegister(插件无需注册) -### 方案 B:通过文件视图 +#### 步骤 6:排除不必要的依赖DLL -另一种方法是使用 `View` → `文件` 直接操作: +**为什么需要排除?** -安装项目 -├── Application Folder/ -│ ├── Primary output from NavisworksTransportPlugin (Active) -│ └── 额外配置文件(如果有) +- 系统DLL(如System.Net.Http.dll、System.IO.Compression.dll等)由Windows系统提供 +- Navisworks API DLL(如Autodesk.Navisworks.*.dll)由Navisworks应用程序提供 +- 这些DLL不应包含在安装包中,避免版本冲突和安装包过大 + +**如何识别需要排除的DLL?** + +- **系统DLL**:通常以`System.`开头,如System.Net.Http.dll、System.IO.Compression.dll +- **Navisworks API DLL**:以`Autodesk.Navisworks.`开头 +- **其他应用程序DLL**:由其他已安装软件提供的DLL + +**排除方法:** + +1. **通过文件系统编辑器排除** + - 在文件系统编辑器中,展开 `Application Folder` → `Primary output from NavisworksTransportPlugin (Active)` + - 找到需要排除的DLL(如System.Net.Http.dll) + - 右键点击该DLL → `属性窗口` + - 将 `Exclude` 属性设置为 `TRUE` + +2. **通过直接编辑项目文件排除**(高级方法) + - 在解决方案资源管理器中,右键点击setup项目 → `卸载项目` + - 再次右键点击 → `编辑 NavisworksTransport.Setup.vdproj` + - 找到需要排除的DLL节点(通常包含"AssemblyAsmDisplayName"、"Name"和"SourcePath") + - 将 `"Exclude" = "11:FALSE"` 修改为 `"Exclude" = "11:TRUE"` + - 保存文件,右键点击项目 → `重新加载项目` + +**需要排除的常见DLL:** + +- 系统DLL: + - System.Net.Http.dll + - System.IO.Compression.dll + - System.IO.Compression.FileSystem.dll + - System.Diagnostics.Tracing.dll + - System.Core.dll + - System.Windows.Forms.dll + - System.Drawing.dll + - System.Data.dll + - System.xml.dll + +- Navisworks API DLL: + - Autodesk.Navisworks.Api.dll + - Autodesk.Navisworks.ComApi.dll + - Autodesk.Navisworks.Interop.ComApi.dll + - Autodesk.Navisworks.Controls.dll + - Autodesk.Navisworks.Clash.dll + - Autodesk.Navisworks.Timeliner.dll + +**验证排除结果:** + +1. 重新构建setup项目 +2. 检查构建输出,确认排除的DLL不再被包含 +3. 安装后检查目标目录,确认排除的DLL没有被安装 +4. 启动Navisworks,验证插件正常运行(依赖项由系统或Navisworks提供) --- @@ -132,18 +196,23 @@ 1. 在 `文件系统` 视图中 2. 点击左侧 `Application Folder` -3. 在属性窗口中设置 `DefaultLocation`: +3. 将AlwaysCreate属性设置为`TRUE` +4. 在属性窗口中设置 `DefaultLocation`: -DefaultLocation = [ProgramDataFolder]\Autodesk\Navisworks Manage 2026\plugins\NavisworksTransportPlugin +DefaultLocation = [CommonAppDataFolder]\Autodesk\Navisworks Manage 2026\plugins\NavisworksTransportPlugin ### 目录结构说明 -| 目录 | 说明 | 环境变量 | -|------|------|----------| -| [ProgramDataFolder] | 公共应用数据 | %ProgramData% | -| [ProgramFilesFolder] | 程序文件目录 | %ProgramFiles% | -| [AppDataFolder] | 用户应用数据 | %AppData% | -| [CommonAppDataFolder] | 公共应用数据 | %AllUsersProfile% | +| 目录 | 说明 | 环境变量 | 正确的Windows Installer属性 | +|------|------|----------|----------------------------| +| 公共应用数据 | %ProgramData% | C:\ProgramData\ | [CommonAppDataFolder] | +| 程序文件目录 | %ProgramFiles% | C:\Program Files\ | [ProgramFilesFolder] | +| 用户应用数据 | %AppData% | C:\Users\用户名\AppData\Roaming\ | [AppDataFolder] | +| 本地用户应用数据 | %LocalAppData% | C:\Users\用户名\AppData\Local\ | [LocalAppDataFolder] | +| 桌面文件夹 | 桌面 | C:\Users\用户名\Desktop\ | [DesktopFolder] | +| 开始菜单 | 开始菜单 | C:\ProgramData\Microsoft\Windows\Start Menu\ | [StartMenuFolder] | + +> **注意**: Windows Installer Projects 扩展使用 `[CommonAppDataFolder]` 来表示系统的 `%ProgramData%` 目录,而不是 `[ProgramDataFolder]` --- @@ -172,45 +241,12 @@ DefaultLocation = [ProgramDataFolder]\Autodesk\Navisworks Manage 2026\plugins\Na 2. 点击 `系统必备...` 按钮 3. 在系统必备组件列表中: - ✅ 勾选 `Microsoft .NET Framework 4.8 (x86 and x64)` - - ✅ 勾选 `Windows Installer 4.5`(通常已包含在系统中) 4. 设置: - ✅ `下载系统必备组件从以下位置`: 组件供应商的网站 - - 或 `将系统必备组件组件下载到同一应用程序文件夹` --- -## 第七部分:配置构建事件 - -### 预构建事件 - -在安装项目属性中添加: - -#### 清理旧的构建文件 - -```batch -if exist "$(ProjectDir)bin\Release\*.msi" del /q "$(ProjectDir)bin\Release\*.msi" -if exist "$(ProjectDir)bin\Release\*.cab" del /q "$(ProjectDir)bin\Release\*.cab" -``` - -### 后构建事件 - -#### 自动复制MSI到输出目录 - -```batch -xcopy "$(ProjectDir)bin\Release\NavisworksTransport.Setup.msi" "$(SolutionDir)bin\Release\" /Y -``` - -### 构建事件配置方法 - -1. 右键点击安装项目 → `属性` -2. 在属性窗口中设置: - - **PreBuildEvent**: 输入预构建命令 - - **PostBuildEvent**: 输入后构建命令 - - **PostBuildEventCondition**: `On successful build` 或 `Always` - ---- - -## 第八部分:构建和测试 +## 第七部分:构建和测试 ### 构建 Release 版本 @@ -234,9 +270,43 @@ msbuild NavisworksTransport.sln /p:Configuration=Release /p:Platform=x64 /t:Navi ### 构建输出 -成功构建后,在以下位置找到MSI文件: +成功构建后,在以下位置找到安装文件: -解决方案目录\bin\Release\NavisworksTransport.Setup.msi +- 解决方案目录\bin\Release\NavisworksTransport.Setup.msi +- 解决方案目录\bin\Release\setup.exe + +### setup.exe与.msi文件的区别 + +Visual Studio Installer Projects 会生成两个安装文件,它们各有不同用途: + +#### setup.exe(引导程序/启动器) + +- **主要功能**:检查并安装系统必备组件(如特定版本的.NET Framework) +- **使用场景**: + - 目标系统可能缺少必要的依赖项 + - 需要自动处理依赖安装的情况 + - 提供更友好的安装体验 +- **工作机制**: + 1. 检查系统是否满足所有必备条件 + 2. 如果缺少依赖,会自动下载并安装 + 3. 然后启动.msi安装包完成实际安装 + +#### .msi文件(Windows Installer数据包) + +- **主要功能**:包含实际的安装内容和配置 +- **使用场景**: + - 目标系统已经满足所有依赖条件 + - 需要通过命令行进行静默安装 + - 只需要实际安装内容,不需要依赖检查 +- **工作机制**: + - 直接通过Windows Installer服务安装 + - 可以使用msiexec命令进行高级安装配置 + - 不具备检查和安装系统必备组件的能力 + +#### 分发建议 + +- **完整分发**:同时提供setup.exe和.msi文件,让用户根据需求选择 +- **简化分发**:如果可以确保所有目标系统都已安装必要的依赖项(如Navisworks 2026环境已包含所需的.NET Framework版本),可以只提供.msi文件 ### 测试安装 @@ -389,7 +459,18 @@ pause 2. 在安装项目中明确指定.NET 4.8 3. 在系统必备组件中勾选.NET 4.8 -### Q5: 权限不足错误 +### Q5: 平台不兼容错误 + +**现象**: 构建时出现 "File 'xxx.dll' targeting 'AMD64' is not compatible with the project's target platform 'x86'" 错误 + +**解决**: + +1. 在解决方案资源管理器中右键点击 `解决方案 'NavisworksTransport'` → `配置管理器` +2. 将 `NavisworksTransport.Setup` 项目的平台设置为 `x64` +3. 确保所有项目的平台一致(都是x64) +4. 在添加项目输出时,确保选择的平台是 `x64` + +### Q6: 权限不足错误 **现象**: 安装时提示"拒绝访问" @@ -438,6 +519,27 @@ NavisworksTransport/ | Release | 发布版本 | 优化,体积小 | | CI/CD | 自动化构建 | 静默构建,生成MSI | +### 4. 依赖管理最佳实践 + +**排除不必要的DLL:** + +- 始终排除**系统DLL**(如System.*.dll) +- 始终排除**Navisworks API DLL**(Autodesk.Navisworks.*.dll) +- 排除**其他应用程序提供的DLL**(如第三方软件的共享DLL) + +**仅包含必要的文件:** + +- 自定义应用程序DLL(NavisworksTransportPlugin.dll) +- 第三方库DLL(如SQLite.NET.dll等) +- 配置文件(config.json等) +- 资源文件(图标、文档等) + +**定期检查:** + +- 每次构建后检查输出目录的文件列表 +- 确保没有包含不需要的DLL +- 检查新添加的依赖项,确认是否需要排除 + ### 4. 测试清单 安装MSI前必须测试: @@ -515,5 +617,5 @@ NavisworksTransport.Setup/ --- **文档版本**: 1.0 -**最后更新**: 2025-11-17 +**最后更新**: 2025-11-18 **维护者**: NavisworksTransport 开发团队