问题标签 [programdata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 从本地 PC 移动到服务器
我已经在 .NET (C#C) 中构建了一个 Windows 服务应用程序,该应用程序当前在我的本地 PC(Win 和 64 位)上运行,它有自己的事件日志文件以及用于后期调试的自定义日志文件,该文件注销到c:\ProgramData\MyAppName\
.
我在一个包含所有主要功能代码的项目中拥有主要的 2 个 DLL。
这些被服务 VS 项目挂钩,该项目还包含一个 Windows 窗体项目,它位于桌面托盘中,并为我提供服务状态,因为它使用 3rd 方 API,API 是否启动并运行,任何当前错误,此外,它还有一些按钮,让我可以在需要时停止/启动服务。
但是,我不得不将这一切都转移到 Windows 2012 Server 中,并且有一些问题需要解决。
- 服务器上没有 Visual Studio,所以我没有目录可以放置我的项目、重建它们并运行它们并让其他应用程序挂接到我必须与“添加引用”等相关的 DLL。
如果需要,我是否应该将 VS 网络版或其他东西下载到服务器以使其更易于管理/调试/代码?
或者是否有另一种方法,例如只需复制 DLL 和 regsrvr 进行安装,然后将服务/应用程序复制到服务器,它会自动引用它的工作,如果不是,程序是什么。
主要代码在我构建的 DLL 中,它还附带一个 JSON 3rd 方 API 构建的 DLL。
当我重建主项目时,它们都会重新创建,然后我必须在重建它们以使其正确运行之前将它们删除并重新添加到服务和 win 表单项目中。
在服务器上没有 VS 的情况下如何解决这个问题
- 我可以将代码的调试/制作保留在我的 PC 上,然后将文件复制过来吗?- 尽管路径不同,从服务/应用程序到 DLLS 的链接是否仍然有效?- 如果不是我该怎么办?- 还有存放它们的最佳文件夹在哪里?
我还注意到,尽管我对服务器(RD/SFTP/Win Share)具有管理员/根访问权限,但我在 C:\ 驱动器上看不到 ac:\ProgramData 文件夹。这是我的应用程序在我的 PC 上运行时 24/7 运行时的所有日志记录的地方。它每天创建一个日志文件,2 个历史文件 - 全部用于后期处理调试等。
这是因为它是一个 Win 2012 服务器,而我用来获取项目路径的代码是
工作方式不同,例如 Environment.SpecialFolder.CommonApplicationData 是 Win 2012 上的不同文件夹,还是我需要做一些事情来显示 ProgramData 文件夹以便我可以正常浏览它?
我记得最近当我在我的 Win7 机器上进行 Windows 更新时,出现了一些问题(显然在 Win7 中很常见),然后我看不到 ProgramData 文件夹(服务仍在运行) - 直到我的配置文件被交换(它使用的是默认临时配置文件,这就是为什么我所有的桌面图标都带有书签和文件夹)。
所以我试图将这 2 个 VS 项目(或他们创建的工作代码)从我的 Win7 64 位机器移动到 Win 2012 64 位服务器。
在服务器上没有 Visual Studio 的情况下,要使所有内容正常工作并显示所有文件夹(程序数据)以及启动和运行服务的最佳步骤是什么?
appdata - 我们是否仍将程序数据存储在 C:\ProgramData 或 Windows 10 中的 C:\Users\user1\AppData 中?
首先我会解释我的问题。我正在更新软件以满足 Windows 10 用户的需求。目前我们正在使用C:\ProgramData
存储产品数据库和产品定价数据库。每个季度我们都会发布新版本的软件,该软件更新了产品定价数据库,可能还有用户安装的新的和/或编辑过的产品数据库。这些数据应该继续存储在 ProgramData 中还是我们应该将其切换到 store 中C:\Users\user1\AppData
?
我一直在研究 Program Data 和 AppData 之间的区别之间的问题。StackOverflow 问题 用户下载软件的数据不是自定义的,因此 AppData 似乎不是正确的位置,但希望对此进行验证。
提前谢谢你。
c# - 如何扩展搜索环境变量 %ProgramData% 并使用启动信息
我PythonApplication1.py
进入了 C# Windows 窗体应用程序的源代码。在特定条件下,我以这种方式将其写入 Program Data 文件夹:
然后在特定条件下 C# 从程序数据文件夹运行 Python 应用程序,这样:
在 Python 代码方面,我得到了第二件事,它将一些数据写入文本文档,该文档位于相同的路径中,但它的创建发生在 Python 本身,但可以从 C# 代码完成,无论如何,这里:
但是python代码必须通过相同的程序数据路径写入此文件:
并写,就在同一个位置,因为两者都在那里:
问题是,当我运行上面显示的这个 python 代码时,这样:
它做了两件错误的事情,这不会发生,如果它不是%ProgramData%
目录并且位于调试文件夹中的 C# .exe 中,只是通过Process.Start("PythonApplication1.py");
,或者如果我使用 doc.txt 在路径内运行 Python 代码%ProgramData%\Folder
,只是手动。它直接创建并写入文件,一切都是正确的。
否则,如果Process.Start(@"%ProgramData%\\Folder\\PythonApplication1.py");
我得到第二个结果,它不会将数据写入 doc.txt %ProgramData%\Folder
,python 代码会使用 C# .exe 从调试文件夹中的程序数据文件夹中创建它。
所以问题是如何从 python 代码创建和写入位于 C# 应用程序“%ProgramData%\Folder”路径的 doc.txt 中。
似乎,如果 PythonApplication1.py 存在于 ProgramData 中:
如果手动执行它会创建文本文档并写入它,它必须执行 with Process.Start
,但不是。
我也尝试使用明星信息,但不确定这是否正确,无论如何我得到了相同的结果:
所以似乎我在这里需要两件事。展开搜索环境变量%ProgramData%。并且还需要使用启动信息来告诉进程在该特定文件夹上启动。否则,当前工作文件夹将与我猜的 application 文件夹相同,但不知道该怎么做,如果是问题的原因,需要你的帮助。
python - 如何获取python可执行文件的文件路径
我正在尝试通过已经存在的路径目录 C:\ProgramData\myFolder\doc.txt 在 python 中获取路径以打开和写入文本文档,无需创建它,但使其与用户计算机上的 python 可执行文件一起使用。例如,如果我通过这种方式获得文件夹:
然后如果我想写:
或打开它:
不确定是否正确:
并使用它例如:
c++ - 当我不希望它时,ProgramData 中的 C++ 应用程序 MDB 复制到用户的 AppData 文件夹
我有一个 C++ 程序,它通过 OBDC 系统 DSN 连接连接到 Access 数据库。该 DSN 是 ProgramData 文件夹中 MDB 的路径。当用户 A 运行应用程序时,它会将该 MDB 文件复制到他们的 AppData\Local 文件夹,并且应用程序对 MDB 所做的任何更新都会复制到他们的 AppData 文件夹中的那个。这不好,因为如果用户 B 运行应用程序,我希望他们看到用户 A 对 MDB 所做的更改。
1) 有没有办法强制它不将 MDB 复制到他们的 AppData 文件夹,而只使用 ProgramData 中的那个?
2)我这样做正确吗?我是否应该将 MDB 放在 ProgramData 以外的其他位置,以便正确共享它?
3) 我是否需要让我的应用程序在启动时比较 MDB 的时间戳?在启动时我可以让它从 ProgramData 中拉出来,当它关闭时我可以让它写回 ProgramData?这似乎是一个 hack,我什至不知道权限是否会成为问题
wpf - 高级安装程序 MSI - 仅在以管理员身份运行 WPF 应用程序时写入 ProgramData
我有一个 WPF 应用程序,我正在其中保存一个配置文件。
我正在尝试写信给:
但是,当我运行应用程序(非管理员)时,它会在此处写入文件:
当我以管理员身份运行应用程序时,它会正确写入 ProgramData。
这样我就可以在用户之间共享设置文件。是否有需要运行或配置安装程序的特殊方式?
是否有另一种建议的方式来共享配置文件而无需以管理员身份运行应用程序?
我正在使用高级安装程序。
windows - How to check if a folder path matches USERs folder in BAT script
I am writing a Windows batch script which tries to determine if a path value (extracted from an application's config file) points to a user specific folder (e.g. %APPDATA% ) or a general one (e.g. C:\ProgramData\AppName).
The long winded way to do this would be to try and check for every possible wya this can be set, e.g this is what I started coding up:
But, before I carry on with this approach, I would like to ask if there is simple one-liner that can tell me if a given pat will map to a user specific folder. Bear in mind also that on some systems the user folder could be a network UNC path.
file - 当 Folder.Files 返回不存在的文件夹时处理
我希望 Power Query 搜索整个 C: 驱动器以查找特定扩展名的所有文件,例如 *.pdf。当我尝试在第二步中过滤文件扩展名时,出现此错误:
问题是,这个文件夹不存在。为什么 Power Query 返回无效的文件夹路径?PowerQuery 返回的文件夹似乎是文件夹中C:\ProgramData
文件夹的链接。
以下 M 脚本(仅限于问题区域)在第一步返回 999+ 行。如果我dir /s /ah
在命令提示符下从同一个文件夹运行,它只返回 20 个文件。
我的最终目标是使用 Excel Power Query 在整个 C: 驱动器上查找特定扩展名的所有文件并返回它们的文件名、路径和大小。请注意,dir c:\*.pdf /b /s > list.txt
不会返回文件大小。
我安装了 Windows 10 64 位和 Office 365 32 位。
visual-studio - Visual Studio 部署包更改文件安全性
我在 Visual Studio 中创建了一个部署包,其中包含一个访问 (MDB) 文件,该文件部署到 C:\ProgramData\AppName 文件夹。当我尝试使用已安装的应用程序时,我观察到它可以从 MDB 读取但不能写入它。
在 MDB 文件属性 > 安全选项卡中,用户权限设置为读取但不是写入。这可能是这个问题的原因。谁可以解决此问题,以便将安全设置为用户的完全控制?
c# - 无法通过应用程序访问其他计算机上的 LocalDB
我制作了一个使用 LocalDB 的应用程序,以引用一些预定义的值作为它所做的一些数学运算的一部分。我创建了一个安装程序项目,以便在安装应用程序时,将 DB 的副本发送到 [ProgramData][ProductName],它被映射为 ConnectionString 的路径。
当我安装它并在我的计算机上运行应用程序(在 Visual Studio 之外)时,它也完全按照我的意愿运行 - 并且代码中没有错误、警告或消息。但是,当我将它安装到其他人的计算机上时(这样他们就可以使用它并指出他们遇到的任何错误),这就是问题所在。
在他们的计算机上,每当代码引用 LocalDB 时,他们都会收到以下异常消息:
“尝试建立与 SQL Server 的连接时发生网络相关或特定于实例的错误”System.Data.SqlClient.SqlException (0x80131904)。错误继续说 LocalDB 实例不存在。
我已经仔细检查了 ProgramData 文件夹,并且可以确认 LocalDB 在安装过程中确实被复制到那里 - 我已经确认代码在尝试连接到它时正在查看正确的文件夹 - 我只是想不通怎么了。
我已检查用户是否具有对该文件夹的读/写访问权限,并且是其计算机上的 LocalAdmin。
请问有人能帮助指导我解决这个问题吗?
ConnectionString 在下面,如果有帮助的话: