feat(installer): add Inno Setup installer and fix Shell C++ DLL docx leakage
- Introduce Inno Setup standard EXE installer (Everything2Everything-Setup-x64.exe) for zero-friction end-user installation without certificate trust friction - Fix hardcoded .docx recommendation in Everything2Everything.Shell dllmain.cpp - Improve MSIX Install.cmd and Install.ps1 with robust privilege elevation and path parsing - Integrate Inno Setup into tools/Publish-Release.ps1 pipeline and release upload - Add automated regression tests for installer and packaging integrity
This commit is contained in:
parent
28624c386e
commit
4a4f2b78e4
6 changed files with 176 additions and 64 deletions
|
|
@ -125,11 +125,14 @@ inline Cat CatOf(const std::wstring& e) {
|
|||
|
||||
inline bool Recommend(const std::wstring& inExt, const std::wstring& outExt) {
|
||||
const Cat in = CatOf(inExt), out = CatOf(outExt);
|
||||
if (in == Cat::Video) return out == Cat::Video || out == Cat::Audio;
|
||||
if (in == Cat::Audio) return out == Cat::Audio;
|
||||
if (in == Cat::Data) return out == Cat::Data;
|
||||
if (in == Cat::Video)
|
||||
return out == Cat::Video || out == Cat::Audio || outExt == L".gif" || outExt == L".png" || outExt == L".jpg" || outExt == L".webp";
|
||||
if (in == Cat::Audio)
|
||||
return out == Cat::Audio;
|
||||
if (in == Cat::Data)
|
||||
return out == Cat::Data;
|
||||
if (in == Cat::Image || in == Cat::Vector)
|
||||
return out == Cat::Image || outExt == L".pdf" || outExt == L".txt" || outExt == L".docx";
|
||||
return out == Cat::Image || outExt == L".pdf" || outExt == L".txt";
|
||||
if (in == Cat::Doc)
|
||||
return out == Cat::Image || outExt == L".pdf" || outExt == L".txt" || outExt == L".docx" || outExt == L".html" || outExt == L".md";
|
||||
if (in == Cat::Markup || in == Cat::Text)
|
||||
|
|
|
|||
|
|
@ -78,4 +78,18 @@ public class PackagingSignatureTests
|
|||
Assert.Contains("powershell", content, StringComparison.OrdinalIgnoreCase);
|
||||
Assert.Contains("TrustedPeople", content, StringComparison.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void InnoSetupScript_Exists_And_Configures_Lowest_Privileges_And_ContextMenu()
|
||||
{
|
||||
var repoRoot = FindRepoRoot();
|
||||
var issPath = Path.Combine(repoRoot, "packaging", "Everything2Everything.iss");
|
||||
Assert.True(File.Exists(issPath), "packaging/Everything2Everything.iss must exist for standard EXE installer");
|
||||
|
||||
var content = File.ReadAllText(issPath);
|
||||
Assert.Contains("PrivilegesRequired=lowest", content);
|
||||
Assert.Contains("PrivilegesRequiredOverridesAllowed=dialog commandline", content);
|
||||
Assert.Contains("register", content);
|
||||
Assert.Contains("unregister", content);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue