Kev*_*ang 9 c# deployment clickonce file associations
所以这里是问题的简要总结:
摘要:
我设置了ClickOnce应用程序的fileAssociations,但是,当我运行/更新我的程序时,它们没有注册(因为,我试图关联的.bvr文件没有图标,我不能双击它们来启动我的应用程序).
额外信息:
我首先尝试转到属性 - >发布 - >选项 - >文件关联,然后从那里设置我的关联.尝试失败后,我尝试直接在app.manifest中设置它:
<fileAssociation
xmlns="urn:schemas-microsoft-com:clickonce.v1"
extension=".bvr"
description="Behavior File"
progid="GGS.Behavior"
defaultIcon="bvrico.ico"
/>
Run Code Online (Sandbox Code Playgroud)
我读过这么多关于此的文章,我开始感到沮丧.一些信息:
我也处理通过AppDomain传递的数据,但我怀疑这真的改变了什么.
我想知道文件关联只能在安装时设置.
无论如何,我真的很感激这个问题的一些见解.我真的很喜欢我的项目中的文件关联.
提前谢谢大家.
PS:在Windows XP和Windows 7上测试过.
编辑:我也在微软发布了这个,顺便说一句.
如果有人想在那里发布答案.我真的无法想出这个.:d
小智 6
如果您尝试注册的文件类型先前已在其他程序(如记事本)中注册,或者甚至在记事本中打开,那么我发现使其工作的唯一方法是从注册表中删除2个位置的文件类型,以及然后重新启动 之后发布您的应用程序的更新,如果它的那种问题你的状态良好.
HKEY_CURRENT_USER \软件\微软\的Windows\CurrentVersion\Explorer中\ FileExts\.bvr
HKEY_CLASSES_ROOT\.bvr
重启
发布您应用的更新.
ClickOnce 不会以通常的方式传递命令行参数,而是通过
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData
Run Code Online (Sandbox Code Playgroud)
因此,在应用程序启动时,您需要检查它是否包含任何字符串,并相应地修改您的启动行为。
这是因为 ClickOnce 应用程序是通过服务器上的部署清单启动的,而不是通过 .exe 启动的。顺便说一句:通过“属性”->“发布”->“选项”->“文件关联”设置文件关联应该可以正常工作。
编辑:(我如何创建示例应用程序)
所有未提及的设置都没有被触及......这就是我所做的一切!
看起来这正是您所做的 - 也许尝试创建一个简单的测试应用程序,看看它是否适合您。由于此答案并不能真正回答您的问题,请在完成后告诉我,以便我可以将其删除。