将资源文件添加到F#windows应用程序会导致UAC启动应用程序
我正在尝试使用已接受的答案中描述的方法,在F#windows应用程序中嵌入一个应用程序图标 当我将.res文件添加到应用程序时(通过将Build/Other标志设置为将资源文件添加到F#windows应用程序会导致UAC启动应用程序,windows,f#,Windows,F#,我正在尝试使用已接受的答案中描述的方法,在F#windows应用程序中嵌入一个应用程序图标 当我将.res文件添加到应用程序时(通过将Build/Other标志设置为--win32res:MyResourceFile.res或通过设置application/Resource file),启动它时会弹出UAC提示符 我试过: 嵌入一个空的.res文件(将一个空的.rc编译成.res)-结果相同 创建一个新的控制台项目,将输出类型更改为Windows并嵌入.res文件-结果相同 删除.suo文件以
--win32res:MyResourceFile.res
或通过设置application/Resource file),启动它时会弹出UAC提示符
我试过:
- 嵌入一个空的.res文件(将一个空的.rc编译成.res)-结果相同
- 创建一个新的控制台项目,将输出类型更改为Windows并嵌入.res文件-结果相同
- 删除.suo文件以防万一-结果相同
编辑: 我用同样的方法创建了两个最小的项目,但其中一个有UAC问题,另一个没有。我比较了fsproj和sln文件,但是比较它们(Notepad++compare插件),我看不出任何项目设置有什么不同 ConsoleApp1的项目文件没有UAC问题: FixVS2015Update的项目文件,有问题: KDiff3的屏幕截图,比较.fsproj文件:
只有文件名和guid是不同的,除非我遗漏了什么 比较.sln文件:
我也找不到任何差异。资源通过
--win32res:MyResourceFile.res
嵌入到.exe文件中,并通过浏览器正确显示,尽管覆盖了UAC“屏蔽”。应用程序在运行时无法访问它,因此问题似乎与文件访问无关。在VS中,我卸载了项目,在VS中编辑了fsproj,更改了两个XML文件的名称,保存了fsproj文件,重新加载了项目,重建了解决方案,调试中的exe在没有UAC提示的情况下运行。仍然无法重现问题并再次修复。只修复了一次,现在我在复制了一个可以重现UAT提示的项目后,无法重现这个问题。奇怪。刚刚启动了dotPeek,它为两个可执行文件显示了完全相同的IL代码。我尝试了您的过程,对doc XML文件使用了更长和更短的名称,但没有区别。我可能很快就会求助于查看十六进制转储…此评论已经很晚了,但我猜您正在运行Windows Installer检测冲突,因为您的程序集名称包含关键字“Update”。看见