我已经在Win 7 RTM x64上创建了一个.NET C#WinForms应用程序,我们可以说我已经调用了DataInstaller。程序兼容性助手认为我的应用程序是安装程序
当我在调试器之外运行此程序(只是一个空的表单,此时没有功能),它工作正常,直到我关闭表单。然后我从程序兼容性助手,说一个消息:
该程序可能没有正确安装
然后我得到使用推荐的设置重新安装或者说,安装没有工作如预期的选项。
如果我命名应用程序'DataThingy',这不是问题,我想这与名为* Setup的程序获得UAC盾牌图标的方式有关。
我认为会有一些简单的东西,我可以放在应用程序清单,以防止这种情况?
我不确定这是否发生在Vista上,因为我目前没有访问权限。
更改名称不是一个选项,关闭UAC不是一个选项,所以请不要提示!
编辑:
OMG。
看来,如果任一下列的都是真实的,UAC坚持在其桨:
埃克名称包含单词安装
的AssemblyInfo.cs
AssemblyTitle contains the word 'Installer'
e.g. [assembly: AssemblyTitle("DataInstaller")]
AssemblyProduct contains the word 'Installer'
e.g. [assembly: AssemblyProduct("Data Installation Utility")]
“安装”也可以是'安装'。
乞丐的信念,它的确如此。很显然,一位老的VB6程序员被搬到了雷德蒙的UAC团队。
我仍然需要一种解决方法,我不准备接受我的应用程序不可能被称为安装程序,因为它不会触摸注册表或将任何文件放在Program Files文件夹中。
我假设如果我试图执行名为IAmAVirus.exe的应用程序,UAC会将机器置于完全锁定状态。 (其实,我不敢尝试,因为我不完全相信我只是傻)
实际上,Windows只是检查“setup”或“install”等文件的文件名,以确定是否某个安装程序是安装程序。是的,这是愚蠢的...可以做些什么呢?我想知道......好Q。 – 2009-10-16 11:05:12
我希望如此,因为这对我来说太有意思了。“谢谢你的投票! – Carl 2009-10-16 11:15:35
@Wim - 不,它似乎是AssemblyTitle,就像帖子建议的那样。在我的Win7 SP1机器上对PackageInstaller.exe进行验证 - 如果程序集标题是PackageNstaller,则没有问题 – 2013-07-26 14:54:24