diff --git a/AppInstallerReset.sln b/AppInstallerReset.sln index d9f8a2d..792d8e0 100644 --- a/AppInstallerReset.sln +++ b/AppInstallerReset.sln @@ -15,10 +15,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "certmgr", "certmgr\certmgr. EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "appinstaller", "appinstaller\appinstaller.vcxproj", "{F0C84812-0CDF-4AA0-A0F8-F37AC833F39B}" ProjectSection(ProjectDependencies) = postProject - {8EAC0230-4990-4E41-8E0F-D641D1561396} = {8EAC0230-4990-4E41-8E0F-D641D1561396} {33D91B58-1981-4A3C-B4D1-86EE406CDE12} = {33D91B58-1981-4A3C-B4D1-86EE406CDE12} - {A7753282-AA16-43D9-8ACA-7065239DD702} = {A7753282-AA16-43D9-8ACA-7065239DD702} {798ED492-EECE-457D-8FD8-129DA93CE126} = {798ED492-EECE-457D-8FD8-129DA93CE126} + {8EAC0230-4990-4E41-8E0F-D641D1561396} = {8EAC0230-4990-4E41-8E0F-D641D1561396} + {A7753282-AA16-43D9-8ACA-7065239DD702} = {A7753282-AA16-43D9-8ACA-7065239DD702} + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C} = {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C} {E04CCAB9-35DB-495C-A279-5B483C707CD0} = {E04CCAB9-35DB-495C-A279-5B483C707CD0} {EF4012D4-EF08-499C-B803-177739350B2D} = {EF4012D4-EF08-499C-B803-177739350B2D} EndProjectSection @@ -26,6 +27,7 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "settings\settings.vcxproj", "{AD25497F-A15F-4DFF-AC7A-B8ABF5F411D6}" ProjectSection(ProjectDependencies) = postProject {3AE2A022-ED83-41F1-948A-12A7593CBD00} = {3AE2A022-ED83-41F1-948A-12A7593CBD00} + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C} = {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reslib", "reslib\reslib.vcxproj", "{3AE2A022-ED83-41F1-948A-12A7593CBD00}" @@ -48,8 +50,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PrivateInit", "PrivateInit\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppxPackage", "AppxPackage\AppxPackage.csproj", "{BD681A4F-EB60-4BB8-90B5-65968FC7DA59}" ProjectSection(ProjectDependencies) = postProject - {8EAC0230-4990-4E41-8E0F-D641D1561396} = {8EAC0230-4990-4E41-8E0F-D641D1561396} {33D91B58-1981-4A3C-B4D1-86EE406CDE12} = {33D91B58-1981-4A3C-B4D1-86EE406CDE12} + {8EAC0230-4990-4E41-8E0F-D641D1561396} = {8EAC0230-4990-4E41-8E0F-D641D1561396} {A7753282-AA16-43D9-8ACA-7065239DD702} = {A7753282-AA16-43D9-8ACA-7065239DD702} {EF4012D4-EF08-499C-B803-177739350B2D} = {EF4012D4-EF08-499C-B803-177739350B2D} EndProjectSection @@ -73,6 +75,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launch", "Launch\Launch.csp EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Reader", "Reader\Reader.csproj", "{26B3C19D-6182-4DB5-8B69-EE098A0FD3BB}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pugixml", "pugixml\pugixml.vcxproj", "{B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|ARM = Debug|ARM @@ -257,6 +261,13 @@ Global {26B3C19D-6182-4DB5-8B69-EE098A0FD3BB}.Release|ARM.Build.0 = Release|Any CPU {26B3C19D-6182-4DB5-8B69-EE098A0FD3BB}.Release|x86.ActiveCfg = Release|Any CPU {26B3C19D-6182-4DB5-8B69-EE098A0FD3BB}.Release|x86.Build.0 = Release|Any CPU + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Debug|ARM.ActiveCfg = Debug|ARM + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Debug|ARM.Build.0 = Debug|ARM + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Debug|x86.ActiveCfg = Debug|Win32 + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Debug|x86.Build.0 = Debug|Win32 + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Release|ARM.ActiveCfg = Release|ARM + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Release|x86.ActiveCfg = Release|Win32 + {B1DF139F-CEF1-404F-8255-31EF4BF0EC4C}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/notes/symlinks.md b/notes/symlinks.md index 9197a56..244a71f 100644 --- a/notes/symlinks.md +++ b/notes/symlinks.md @@ -28,23 +28,47 @@ 最终发布时,你也需要将 `shared` 目录中的每一个子目录都复制到发布目录,再打包发布。 -# pkgread 项目需要引用 pugixml.cpp +# pkgread 项目需要引用 pugixml 代码文件 + +最后,pkgread 项目引用了我新建的一个叫 pugixml 的项目,包含如下文件: + +- `pugixml.cpp` +- `pugixml.hpp` +- `pugiconfig.hpp` -最后,pkgread 项目有一个 `pugixml.cpp` 的引用。 如果没有这个的话,链接器会报错 LNK2019 无法解析的外部符号: - `pugi::xml_document::load_file` -- `pugi::as_utf8_` -- `pugi::as_wide_` +- `pugi::as_utf8` +- `pugi::as_wide` 和 LNK1120 n 个无法解析的外部命令。 因为这个解决方案需要一个 NuGet 包叫 `pugixml` , -但是这个包默认只有 x86 和 x64 的版本,因此为了编译出 ARM32 版本,我就把 pugixml.cpp 在 pkgread 项目中加了一个引用。 +但是这个包默认只有 x86 和 x64 的版本,因此为了编译出 ARM32 版本,我就把 pugixml.cpp 等文件单开了一个项目。 -迁移之后,你应该需要重新添加这个“现有项”的引用。 +迁移之后,你应该需要在 pugixml 项目中重新添加这几个“现有项”的引用。 路径示例: ```D:\GitHub\App-Installer-For-Windows-8.x-Reset\packages\pugixml.1.15.0\build\native\include\pugixml.cpp``` +我的做法是在整个解决方案中添加了一个新的项目 `pugixml`,这个项目的唯一作用就是编译 pugixml.cpp 生成 pugixml.lib 。 + +暂时还需要手动将 Debug 和 Release 版本的 pugixml.lib 从生成的路径分别复制到项目生成时所引用的 Debug 和 Release 目录下,才能成功链接。 + +例如: + +生成的目标路径: + +```D:\GitHub\App-Installer-For-Windows-8.x-Reset\ARM\Debug\pugixml.lib``` + +```D:\GitHub\App-Installer-For-Windows-8.x-Reset\ARM\Release\pugixml.lib``` + + +你需要复制到的路径: + +```D:\GitHub\App-Installer-For-Windows-8.x-Reset\packages\pugixml.1.15.0\build\native\lib\ARM\v140\dynamic\Debug\pugixml.lib``` + +```D:\GitHub\App-Installer-For-Windows-8.x-Reset\packages\pugixml.1.15.0\build\native\lib\ARM\v140\dynamic\Release\pugixml.lib``` + diff --git a/pkgread/pkgread.vcxproj b/pkgread/pkgread.vcxproj index 50b73c5..4643448 100644 --- a/pkgread/pkgread.vcxproj +++ b/pkgread/pkgread.vcxproj @@ -189,7 +189,7 @@ Level3 - Use + NotUsing MaxSpeed true true @@ -228,8 +228,6 @@ - - @@ -250,7 +248,6 @@ - false false @@ -287,6 +284,11 @@ + + + {b1df139f-cef1-404f-8255-31ef4bf0ec4c} + + diff --git a/pkgread/pkgread.vcxproj.filters b/pkgread/pkgread.vcxproj.filters index 8be6062..e061920 100644 --- a/pkgread/pkgread.vcxproj.filters +++ b/pkgread/pkgread.vcxproj.filters @@ -72,12 +72,6 @@ 头文件 - - 头文件 - - - 头文件 - @@ -89,9 +83,6 @@ 源文件 - - 源文件 - diff --git a/priformatcli/priformatcli.vcxproj b/priformatcli/priformatcli.vcxproj index 4f8bbaa..4d30602 100644 --- a/priformatcli/priformatcli.vcxproj +++ b/priformatcli/priformatcli.vcxproj @@ -198,7 +198,8 @@ true true true - D:\GitHub\App-Installer-For-Windows-8.x-Reset\ARM\$(Configuration);C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\arm + + shlwapi.lib;version.lib;dwmapi.lib;winhttp.lib;Psapi.lib;advapi32.lib;gdi32.lib;comdlg32.lib;shell32.lib;ole32.lib;%(AdditionalDependencies) diff --git a/pugixml/pugixml.vcxproj b/pugixml/pugixml.vcxproj new file mode 100644 index 0000000..6f980fe --- /dev/null +++ b/pugixml/pugixml.vcxproj @@ -0,0 +1,147 @@ + + + + + Debug + ARM + + + Debug + Win32 + + + Release + ARM + + + Release + Win32 + + + + + + + + + + + 17.0 + Win32Proj + {b1df139f-cef1-404f-8255-31ef4bf0ec4c} + pugixml + 8.1 + + + + StaticLibrary + true + v140 + Unicode + + + StaticLibrary + true + v140 + Unicode + + + StaticLibrary + false + v140 + true + Unicode + + + StaticLibrary + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) + true + NotUsing + pch.h + + + + + true + + + + + Level3 + true + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 + true + NotUsing + pch.h + + + + + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) + true + NotUsing + pch.h + + + + + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 + true + NotUsing + pch.h + + + + + true + + + + + + \ No newline at end of file diff --git a/pugixml/pugixml.vcxproj.filters b/pugixml/pugixml.vcxproj.filters new file mode 100644 index 0000000..c132240 --- /dev/null +++ b/pugixml/pugixml.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 头文件 + + + 头文件 + + + + + 源文件 + + + \ No newline at end of file