- 在 Config.cs 中添加 DPAPI 加密支持,确保密码安全存储,兼容旧版配置。 - 更新 MainForm.cs,重构数据预览逻辑为异步方法,提升用户体验,避免界面冻结。 - 修改相关方法以支持异步操作,确保在处理大文件时界面响应流畅。 - 更新项目文件以引用 System.Security,支持加密功能。
65 lines
3.3 KiB
XML
65 lines
3.3 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>
|
||
|
||
<!-- DPAPI(ProtectedData):config.json 密码加密 -->
|
||
<ItemGroup>
|
||
<Reference Include="System.Security" />
|
||
</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>
|