- 更新 .gitignore 文件,添加便携版分发目录和 Fody 生成的配置文件。 - 修改 README.md,详细说明便携版的构建与分发流程,强调单文件分发的优势。 - 在 Config.cs 中实现便携配置管理,优先使用 exe 同目录的 config.json,提升用户体验。 - 更新 ExcelService.cs,优化默认模板的导出逻辑,支持现场替换模板文件。 - 在 MainForm.cs 中加载应用图标,提升界面一致性。 - 调整 Program.cs,确保在单文件分发时正确加载 native DLL。
60 lines
3.2 KiB
XML
60 lines
3.2 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
||
|
||
<PropertyGroup>
|
||
<OutputType>WinExe</OutputType>
|
||
<TargetFramework>net48</TargetFramework>
|
||
<UseWindowsForms>true</UseWindowsForms>
|
||
<LangVersion>latest</LangVersion>
|
||
<Nullable>disable</Nullable>
|
||
<AssemblyTitle>TFS Excel 导入工具</AssemblyTitle>
|
||
<Product>TFS Excel 导入工具</Product>
|
||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||
<!-- System DPI 感知:界面像素尺寸按 Theme.Px() 换算,见 app.manifest -->
|
||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||
<!-- exe 图标(资源管理器/任务栏/快捷方式)。多尺寸 ICO 由 tools/make_icon.py 生成 -->
|
||
<ApplicationIcon>app.ico</ApplicationIcon>
|
||
<!-- 便携单文件:Costura 把所有依赖 DLL 嵌入 exe,运行时自动解析 -->
|
||
<SatelliteResourceLanguages>en</SatelliteResourceLanguages>
|
||
</PropertyGroup>
|
||
|
||
<ItemGroup>
|
||
<!-- Excel 读写 -->
|
||
<PackageReference Include="ClosedXML" Version="0.102.2" />
|
||
<!-- JSON (保留给 config.json) -->
|
||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||
<!-- TFS Client OM(内部 SOAP 协议,兼容 TFS 2013;REST wit 路由缺失时唯一可行通道) -->
|
||
<PackageReference Include="Microsoft.TeamFoundationServer.ExtendedClient" Version="14.*" />
|
||
<!-- 无需安装 VS 也可用 dotnet build 编译 net48 -->
|
||
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.3" PrivateAssets="all" />
|
||
<!-- 单文件打包:把所有引用 DLL(含 native WITDataStore)嵌进 exe -->
|
||
<PackageReference Include="Fody" Version="6.8.2" PrivateAssets="all" />
|
||
<PackageReference Include="Costura.Fody" Version="5.7.0" PrivateAssets="all" />
|
||
</ItemGroup>
|
||
|
||
<ItemGroup>
|
||
<None Update="config.json">
|
||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||
</None>
|
||
<!--
|
||
图标同时以「托管资源」嵌一份:窗口标题栏/任务栏用 Form.Icon,
|
||
从内嵌 ICO 取可以得到全部 9 个尺寸帧;若走 Icon.ExtractAssociatedIcon
|
||
只能拿到系统默认那一档,高 DPI 下会糊。
|
||
-->
|
||
<EmbeddedResource Include="app.ico" LogicalName="app.ico" />
|
||
<!-- 默认导入模板:嵌入 exe,「导出Excel模板」时释放出来;exe 同目录存在同名文件时优先用它(便于现场替换模板) -->
|
||
<EmbeddedResource Include="..\templates\TFS导入模板.xlsx" Link="TFS导入模板.xlsx" />
|
||
<!--
|
||
TFS Client OM 的 native DLL(NuGet 包 lib\native\{amd64,x86})。
|
||
Costura 只嵌托管程序集,这两个是纯 win32 DLL,单独嵌入,
|
||
启动时由 NativeLibraryLoader 释放到临时目录并预加载。
|
||
-->
|
||
<EmbeddedResource Include="$(NuGetPackageRoot)microsoft.teamfoundationserver.extendedclient\*\lib\native\amd64\Microsoft.WITDataStore64.dll">
|
||
<LogicalName>native.Microsoft.WITDataStore64.dll</LogicalName>
|
||
</EmbeddedResource>
|
||
<EmbeddedResource Include="$(NuGetPackageRoot)microsoft.teamfoundationserver.extendedclient\*\lib\native\x86\Microsoft.WITDataStore32.dll">
|
||
<LogicalName>native.Microsoft.WITDataStore32.dll</LogicalName>
|
||
</EmbeddedResource>
|
||
</ItemGroup>
|
||
|
||
</Project>
|