VS2008 安装项目:共享(所有用户)应用程序数据文件?

2023-12-10

类人猿同胞、睡莲叶和水轮!

我正在使用 VS 2008 在 C#/.NET/WPF 中开发 Windows 桌面应用程序。该应用程序需要在 Vista 和 XP 计算机上安装和运行。我正在开发一个安装/Windows 安装程序项目来安装该应用程序。

我的应用程序需要对 SQLCE 数据库文件 (.sdf) 以及与我正在使用的第三方控件相关的一些其他数据库类型文件进行读/修改/写访问。这些文件应在 PC 上的所有用户/登录名之间共享,其中任何一个都不需要成为管理员。当然,这意味着这些文件不能进入程序自己的安装目录(在 Vista 出现之前,这种事情经常发生,是的,是的!)。

我原以为解决方案会很简单。Vista 和 XP 都有用于此目的的共享应用程序数据文件夹。(Vista 中为“\ProgramData”,XP 中为“\Documents and Settings\All Users\Application Data”。) .NET Environment.GetFolderPath(SpecialFolder.CommonApplicationData) 调用用于查找给定 PC 上这些文件夹的路径,是的, 是的!

但我不知道如何将共享应用程序数据文件夹指定为安装项目中的目标。

安装项目提供了一个“Common Files”文件夹,但该文件夹用于共享程序组件(而不是数据文件),通常位于“\Program Files”下,并且具有与“\Program files”中其他任何内容相同的安全限制,是的是的!

安装项目提供了一个“用户的应用程序数据”文件夹,但这是一个每个用户的文件夹,这正是我想要避免的,是的,是的!

是否可以通过 VS 2008 安装项目以可靠的跨 Windows 版本的方式将文件添加到共享应用程序数据文件夹中?谁能告诉我怎么做?


我通过其他来源了解到了我的问题的答案,是的,是的!可悲的是,它没有解决我的问题!是什么让我——一个修理工?是的是的!

要将内容放入 VS2008 安装项目的 Common Application Data 文件夹的子目录中,请执行以下操作:

  1. 在解决方案资源管理器中右键单击您的安装项目,然后选择“查看 -> 文件系统”。

  2. 右键单击“目标计算机上的文件系统”并选择“添加特殊文件夹 -> 自定义文件夹”。

  3. 将自定义文件夹重命名为“通用应用程序数据文件夹”。 (这不是生成的文件夹的名称,它只是为了帮助您保持清晰。)

  4. 将文件夹的 DefaultLocation 属性更改为“[CommonAppDataFolder][Manufacturer]\[ProductName]”。请注意与应用程序文件夹的 DefaultLocation 属性的相似之处,包括单个反斜杠的奇怪使用。

  5. 有一个名为“Property”的文件夹属性,这个荒谬(但不可否认)的事实让您惊叹不已。

  6. 将文件夹的 Property 属性更改为“COMMONAPPDATAFOLDER”。

放置在“Common Application Data”文件夹中的数据文件将被复制到“\ProgramData\Manufacturer\ProductName”(在 Vista 上)或“\Documents and Settings\All Users\Application Data\Manufacturer\ProductName”(在 XP 上)安装程序已运行。

现在事实证明,在 Vista 下,非管理员无法修改/写入此处的文件。因此,所有用户都可以读取这些文件,但他们也可以在“\Program Files”中读取这些文件。那么,我想知道 Common Application Data 文件夹的意义何在?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS2008 安装项目:共享(所有用户)应用程序数据文件? 的相关文章

  • JBoss AS 7 部署顺序和时间安排

    我对一般部署顺序和具体时间安排有疑问 我有一个 Ear 1 它通过 bean 和一些队列提供一些功能 队列在standalone xml 中配置 另一只耳朵 2 使用 Ear1 的此服务 所以依赖关系看起来像 ear1 因此 我将ear 2
  • 即使给出了公钥,Gitosis 也需要密码

    我在 Archlinux 上尝试配置 gitosis 时遇到了一些问题 http wiki archlinux org index php Setting Up Git ACL Using gitosis http wiki archlin
  • 具有桌面应用程序安全性的 OAuth2

    我有一个 Electron 应用程序 它基本上是一个 Google Drive 客户端 我打算使用 OAuth 2 但是 Google API 要求我在生成 client secret 的地方注册我的应用程序 由于这是一个桌面应用程序 因此
  • 会话“app”:安装 APK 时出错

    尝试按照说明在真实设备上安装应用程序 http developer android com tools device html http developer android com tools device html 最后 Android
  • Visual Studio 2008 中的本地化

    我正在尝试在 VS2008 中本地化桌面应用程序 C 我已经掌握了多种语言的表单本地化 并且我还有一个用于通用字符串的项目资源文件 但我无法弄清楚如何创建该文件的多个语言版本 似乎没有任何地方记录它 结果似乎是 如果我想生成应用程序的德语版
  • 使用 .NET 在 Windows 中创建弹出式“烤面包机”通知

    我正在使用 NET 并创建一个桌面应用程序 服务 当触发某些事件时 它将在桌面的一角显示通知 我不想使用常规的消息框 b c 那样会造成太大的干扰 我希望通知滑入视图 然后在几秒钟后淡出 我正在考虑一种类似于 Outlook 收到新邮件时发
  • CMake:如何将 .def 文件添加到 Visual Studio 项目过滤器?

    如何将 def 文件添加到 Visual Studio 项目过滤器 filters文件 Visual Studio 使用 def 文件 CMake代码 set a src a cpp a def add library a SHARED a
  • 如何以编程方式在 vs 2008 中创建新的空白解决方案?

    基于设计的方法是 新建项目 gt 其他项目类型 gt Visual Studio 解决方案 gt 空白解决方案 我必须在 C 中以编程方式创建一个空白解决方案 并在此解决方案中添加新的空项目和文件 我在网上找到了很多使用 DTE 的代码 但
  • 如何通过 VSTS 发布定义覆盖 Windows 服务 .exe.config 文件中的密钥

    我正在从事用于部署 Windows 服务项目的 VSTS 发布任务 不幸的是 我们没有创建任何构建定义来创建放置文件夹 但是 我的客户将为该项目提供放置文件夹 我需要的是在发布级别 我想覆盖现有 exe config 文件的密钥 为了创建
  • 为什么在 Windows 上安装预编译版本的 LAPACK 时出现错误?

    我正在尝试使用犰狳矩阵库进行矩阵计算 它需要 BLAS 和 LAPACK Armadillo 文档建议从以下位置获取预编译版本http www stanford edu vkl code libs html http www stanfor
  • MSBuild 未使用所有核心进行构建

    我有一个使用 Visual Studios 2008 配置的项目 当我打开 IDE 并点击构建时 系统上的所有核心都用于构建该项目 但是 当我尝试从命令行构建时 仅使用 1 个核心 这是我正在运行的命令 C Windows Microsof
  • 带参数的 MySQL 脚本

    我想创建一个部署脚本 以某种方式模拟 Oracle 部署脚本 其中使用 param 您可以使用之前声明的参数 我需要为不同数据库上的不同用户自动调用此脚本 例如我的脚本应该是 USE param DROP TABLE IF EXISTS T
  • 将现有表单添加到 C++/CLI WinForms 项目

    我在不同的解决方案中有两个 C CLI 项目 A 和 B 我使用 A 进行实验 测试 并在完成测试后将测试的代码移至 B 但是 我发现在将 Windows 窗体类 标头 cpp 和 resx 添加到项目 B 时 我无法再使用 IDE 的可视
  • 在 VS2010 中发布时 SVsBuildManagerAccessor 失败

    我的 VS 2010 有问题 我无法发布任何项目 我收到错误 获取 SVsBuildManagerAccessor 服务失败 一段时间以来我一直在尝试解决这个问题 奇怪的是 在这种情况开始发生的同时 我也开始遇到 sql server ma
  • 为什么vcredist_x86.exe不能安静安装?

    我需要安静地安装 vcredist x86 exe Microsoft Visual C 2010 Redistributable Package 我在 cmd exe 上输入 vcredist x86 exe q 但是 vcredist
  • “没有可用的二元红宝石”是什么意思?

    每当我使用rvm install x x x 即使安装成功 我也会收到此警告 No binary rubies available for osx 10 12 x86 64 ruby 2 4 0 Continuing with compil
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • 如何修复 ReactiveCocoa(带有 CocoaPods)的安装?

    这里是新手 尝试将 ReactiveCocoa 2 2 4 和 CocoaPods 安装到项目中 但在运行时遇到错误 我用过github 上的这个 podspec https github com CocoaPods Specs blob
  • PHP的部署工具

    大家好 我有一个 PHP 项目 我需要一个进行部署的工具 我找到了 Deployer 一个 PHP 的部署工具 您对此有何看法和经验 Regards Deployer 是一个不错的选择 它有简单的 api 有很多流行框架和应用程序的配方 并
  • 如何使用 Visual Studio 将文件版本嵌入 MSI 文件中?

    我的 C 程序有一个安装项目 该安装项目的属性中有一个版本 我希望生成的 MSI 文件嵌入此版本 这样我就可以在资源管理器中将鼠标悬停在该文件上并查看该文件的版本 我用的是VS2008 我怎样才能做到这一点 如果您只是将 版本 1 5 0

随机推荐