Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将资源文件添加到F#windows应用程序会导致UAC启动应用程序_Windows_F# - Fatal编程技术网

将资源文件添加到F#windows应用程序会导致UAC启动应用程序

将资源文件添加到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文件以

我正在尝试使用已接受的答案中描述的方法,在F#windows应用程序中嵌入一个应用程序图标

当我将.res文件添加到应用程序时(通过将Build/Other标志设置为
--win32res:MyResourceFile.res
或通过设置application/Resource file),启动它时会弹出UAC提示符

我试过:

  • 嵌入一个空的.res文件(将一个空的.rc编译成.res)-结果相同
  • 创建一个新的控制台项目,将输出类型更改为Windows并嵌入.res文件-结果相同
  • 删除.suo文件以防万一-结果相同
在应用程序中添加.res文件会导致UAC启动的原因是什么

(使用VS2015 w最新更新,F#4.0、.NET 4.6.1)


编辑:

我用同样的方法创建了两个最小的项目,但其中一个有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”。看见