标签: windows-installer

如何在Windows 7中查找已安装应用程序的UpgradeCode和ProductCode

我的机器上安装了一个应用程序.我也有它的源代码,但不知何故,此应用程序的ProductCode和UpgradeCode已更改.

现在我想获得这个已安装应用程序的UpgradeCode和ProductCode.我觉得必须有一些工具.

谁能告诉我如何获得已安装应用程序的UpgradeCode和ProductCode?

installer automation windows-installer wix msiexec

37
推荐指数
5
解决办法
14万
查看次数

如何使用WiX安装程序注册文件类型/扩展名?

我没有在WiX文档(或Google)中找到这个问题的明确答案.当然我可以在HKCR中编写相应的注册表项,但这让我觉得很脏,我希望这是一个标准的任务,应该有一个很好的默认解决方案.

对于奖励积分,我想知道如何使其"安全",即不要覆盖文件类型的现有注册,并且只有在安装期间注册并且未更改时才删除卸载时的注册.

installation installer windows-installer wix wix3

36
推荐指数
3
解决办法
2万
查看次数

如何为我的Windows应用程序创建高质量的图标?

如果您运行的是具有更高DPI设置的Windows,您会注意到桌面上的大多数应用程序图标看起来都很糟糕.甚至一些高调的应用程序图标(如Google Chrome)看起来也很糟糕,而Firefox,Skype和MS Office图标看起来很清晰:

friggin模糊的旁边的超清脆图标

(例)

我怀疑大多数图标看起来都很模糊,因为较低分辨率的图标会按比例放大而不是使用更高分辨率的图标.

我想给我的应用程序一个高质量的图标,似乎无法说服Windows使用更高分辨率的图标.我用图标编辑器IcoFX创建了一个多分辨率图标.该图标以16x16,24x24,32x32,48x48,128x128和256x256(!)提供(全部为32位,包括alpha通道),但Windows似乎使用桌面上48x48版本的图标并将其放大,看起来很糟糕.(我使用的是Windows 7 - 64位 - 通过在msi中设置快捷方式(通过Visual Studio 2008安装项目创建)并将其指向包含多分辨率图标的.ico文件来放置图标)

我试过删除128x128图标,但无济于事.有趣的是,在Windows资源管理器中,即使使用"超大图标"设置,图标看起来也很棒.如何创建高质量的桌面图标,在Windows上更高的DPI设置上看起来很棒?

编辑:我测试删除128x128选项,然后是48x48和128x128选项,并尝试Axialis IconWorkshop创建图标 - 没有任何工作.

编辑:经过多次试验和错误我认为这里的真正问题是Visual Studio 2008安装项目 - 手动设置我的可执行文件的链接正确使用高分辨率图标,但是安装程序创建的链接不使用正确的图标.在编辑器中设置链接的图标时,它只给我一个选项(索引0),它似乎是48x48图标.我试过手动调整.vdproj中的IconIndex,但没有运气.

windows icons windows-installer highdpi

36
推荐指数
1
解决办法
3万
查看次数

检查Windows Installer版本

我已经检查了我的添加/删除程序面板和组件面板,但在我的机器上找不到Windows Installer的版本.任何人都可以指导我找出任何机器上安装的Windows Installer版本

windows-installer

34
推荐指数
1
解决办法
8万
查看次数

如何制作一个简单包装EXE文件的MSI

经过太多的实验,我得出结论,Windows Installer简直就是糟糕的技术.但客户需要MSI文件.

那么,我如何创建一个MSI文件,将EXE文件提取到临时目录并使用与传递给EXE文件相同或相似的选项运行它?

Msiexec(命令行选项)中解释了MSI的选项(MSI的低级"运行"是msiexec选项package.msi).

编辑:mjmarsh的WiX解决方案看起来很有效.我还没有机会尝试它(关键时刻).如果它有效,我会接受它.

编辑:它不起作用.遗失的部分:有人/无人看管似乎没有.

无论如何,唯一能完成这项工作的是自定义动作来杀死它的父进程!

编辑:所以有人发布了一个进一步的答案包装整个事情作为安装后的自定义操作.理论上可行,但由于可能需要重新启动(感谢MS for .NET 4有时需要重新启动),我们必须做进一步的hackery.所以从优势矩阵:

Transparency: No. One big custom action.
Customizability: No.
Standardization: No. 
Management and reporting: No. Appears to work but will not.
Security: No benefit.
Validation: No. The hackery required to survive reboot makes this sure to not work.
Resiliency: Completely defeated.
Rollback: No. Rollback didn't work when we were using MSI anyway.
Patching & Updates: No. We have a local solution anyway.
Logging: No. Appears to work …
Run Code Online (Sandbox Code Playgroud)

installer windows-installer msiexec

33
推荐指数
3
解决办法
9万
查看次数

将NSIS脚本构建为MSI包

有没有办法将Nullsoft安装程序脚本(NSI)设置编译为MSI包而不是EXE?

installation windows-installer nsis

32
推荐指数
3
解决办法
2万
查看次数

自定义操作 - 错误1001:找不到文件myApp.InstallState

我试图为Visual Studio Installer项目创建自定义操作以修改配置文件的权限.

Installer.cs如下:

public override void Commit(IDictionary savedState)
{
    base.Commit(savedState);

    // Get path of our installation (e.g. TARGETDIR)
    //string configPath = System.IO.Path.GetDirectoryName(Context.Parameters["AssemblyPath"]) + @"\config.xml";
    string configPath = @"C:\Program Files\Blueberry\Serial Number Reservation\config.xml";

    // Get a FileSecurity object that represents the current security settings.
    FileSecurity fSecurity = File.GetAccessControl(configPath);

    //Get SID for 'Everyone' - WellKnownSidType works in non-english systems
    SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null);

    // Add the FileSystemAccessRule to the security settings.
    fSecurity.AddAccessRule(new FileSystemAccessRule(everyone, FileSystemRights.Modify | FileSystemRights.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, …
Run Code Online (Sandbox Code Playgroud)

c# windows-installer custom-action

32
推荐指数
3
解决办法
3万
查看次数

在Windows安装项目中公布了快捷方式与未公布的快捷方式

我无法理解在快捷方式属性中使用属性Advertise的确切后果.差异是什么?

windows-installer wix setup-project

32
推荐指数
3
解决办法
1万
查看次数

在不卸载的情况下升级Windows服务

目前,我必须在安装新版本之前卸载旧版本的服务.我很确定这与它在提供新服务条目之前不够智能更新或删除旧服务条目有关.

有没有办法让安装程序跳过注册服务(如果它已经存在)?(我可以假设安装文件夹和服务名称在版本之间不会改变.)

另外,有没有办法在卸载时自动停止服务?


编辑:

我正在使用MSI包和Visual Studio安装项目.

.net windows-installer windows-services

31
推荐指数
3
解决办法
2万
查看次数

.NET Framework的目标版本与启动条件不匹配

我有一个我在VS 2010中构建的项目.它通过COM引用了一个C++项目,这也是解决方案的一部分.上周五,我做了一个成功的构建,更改了一行代码,进行了另一个构建,我开始收到有关.NET的错误.

项目中.NET Framework的目标版本与.NET Framework启动条件版本".NET Framework 3.5"不匹配.更新.NET Framework启动条件的版本以匹配高级编译选项对话框(VB)或应用程序页面(C#,F#)中的.NET Framework的目标版本.

  • 项目 - >属性 - >应用程序 - >目标框架(适用于Debug和Release中的每个项目)
  • 项目 - >属性 - >发布 - >先决条件(已确认.NET 3.5和Windows Installer 3.1)
  • 设置 - >启动条件 - > .NET Framework
  • 设置 - >属性 - >先决条件

我还查看了安装程序的vdproj代码,确认启动条件是.NET 3.5:

"ComponentsUrl" = "8:"
"Items"
{
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
    {
        "Name" = "8:.NET Framework 3.5 SP1"
        "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
    }
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
    {
        "Name" = "8:Windows Installer 3.1"
        "ProductCode" = "8:Microsoft.Windows.Installer.3.1"
    }
}

"ComponentsUrl" = "8:"
"Items"
{
     "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
     {
         "Name" = "8:.NET Framework …
Run Code Online (Sandbox Code Playgroud)

.net c# windows-installer visual-studio-2010

31
推荐指数
2
解决办法
3万
查看次数