c# – 当文件位于必须的位置时,ClickOnce无法找到其先决条件

前端之家收集整理的这篇文章主要介绍了c# – 当文件位于必须的位置时,ClickOnce无法找到其先决条件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用 ClickOnce发布我的应用程序以及一些先决条件(.NET 4.5和 SQL Server Express).

我在How to: Include Prerequisites with a ClickOnce Application中说过(注意包文件夹是在v8.1A文件夹而不是v8A文件夹中),但它仍然说它找不到文件.我已经尝试了VisualStudio2013VisualStudio2015 RC.@H_403_3@

To enable ‘Download prerequisites from the same location as my application’ in the Prerequisites dialog Box,you must download file ‘DotNetFX45\dotNetFx45_Full_x86_x64.exe’ for item ‘Microsoft .NET Framework 4.5 (x86 and x64)’ to your local machine. For more information,see 07005.@H_403_3@

To enable ‘Download prerequisites from the same location as my application’ in the Prerequisites dialog Box,you must download file ‘sqlExpress2012\sqlEXPR32_x86_ENU.EXE’ for item ‘sql Server 2012 Express’ to your local machine. For more information,you must download file ‘sqlExpress2012\sqlEXPR_x64_ENU.EXE’ for item ‘sql Server 2012 Express’ to your local machine. For more information,you must download file ‘DotNetFX40ClientKB2468871\dotNetFx40_Client_x86_x64.exe’ for item ‘Microsoft .NET Framework 4 Client Profile (x86 and x64) and Update for .NET Framework 4 (KB2468871)’ to your local machine. For more information,see 07005.@H_403_3@

解决方法

您对ClickOnce部署中的可能性有一个非常错误的想法.规范的MSDN页面this one.高亮显示该网页中最重要的部分:

Impact to the user’s computer. With Windows Installer deployment,applications often rely on shared components,with the potential for versioning conflicts; with ClickOnce deployment,each application is self-contained and cannot interfere with other applications.
Security permissions. Windows Installer deployment requires administrative permissions and allows only limited user installation; ClickOnce deployment enables non-administrative users to install and grants only those Code Access Security permissions necessary for the application.@H_403_3@

Does not affect shared components or other applications: Yes
Installation of shared files: No
Installation to Global Assembly Cache: No
Installation for multiple users: No
Install time registry access: Limited@H_403_3@

这些故意限制旨在让用户对使用ClickOnce安装.NET程序感觉良好.他们不需要管理员的帮助来安装程序.并且安装程序无法对机器进行大幅更改,导致其他程序出现故障.安装人员非常非常常见的问题.@H_403_3@

这与你要做的事情完全不相容. .NET Framework和sql Express都是共享组件,并且需要管理员访问才能安装,并且可能会破坏已安装.NET或sql Server的计算机的稳定性.@H_403_3@

所以这根本行不通.您可以选择它们作为先决条件,但安装时发生的所有事情都是ClickOnce安装程序验证它们是否符合要求.换句话说,该机器必须已安装正确版本的.NET和sql Express.如果没有,那么部署将失败,用户将获得告诉他下载安装程序位置的对话框.然后完全取决于他(或他的管理员)下载并运行安装程序.之后,您的ClickOnce安装完成没有问题.@H_403_3@

部署向导非常糟糕,它应该隐藏底部的单选按钮.只有“来自组件供应商的网站”才是这些先决条件的有效选择.引导程序.xml文件格式不够复杂,无法限制选择.@H_403_3@

如果您想为用户提供安装程序附带的这些先决条件,那么获得优先权的唯一方法是创建一个普通的MSI安装程序.@H_403_3@

猜你在找的C#相关文章