C# C中WinForms应用程序和Windows服务上下文之间的一致应用程序数据路径#

C# C中WinForms应用程序和Windows服务上下文之间的一致应用程序数据路径#,c#,.net,winforms,windows-services,environment,C#,.net,Winforms,Windows Services,Environment,我使用以下代码为XML文件构建所需的路径: System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); 从Windows窗体应用程序执行时,它返回: C:\Users\MyUsername\AppData\Roaming\...\Database.xml C:\Windows\system32\config\systemprofile\AppData\Roaming\...\Datab

我使用以下代码为XML文件构建所需的路径:

System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
从Windows窗体应用程序执行时,它返回:

C:\Users\MyUsername\AppData\Roaming\...\Database.xml
C:\Windows\system32\config\systemprofile\AppData\Roaming\...\Database.xml
从Windows服务中执行时,它返回:

C:\Users\MyUsername\AppData\Roaming\...\Database.xml
C:\Windows\system32\config\systemprofile\AppData\Roaming\...\Database.xml
我现在求助于让自定义安装程序操作在注册表项中保留路径,因为自定义操作将具有桌面上下文。如果有更好的方法,请让我知道


我真正感兴趣的是找出为什么行为一开始是不同的。有问题的Windows服务设置为在重要情况下使用
LocalSystem
帐户。

只有您知道此文件夹的具体要求,但如果要在多个用户之间共享数据,
ApplicationData
是错误的选择:


作为当前漫游用户的应用程序特定数据的公共存储库的目录

漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络上的服务器上,并在用户登录时加载到系统中


请参阅枚举,并选择一个适合您的需求的适当值-一个不依赖于特定用户的值。大多数文件夹都以
Common

开始,只有您知道此文件夹的具体要求,但是如果要在多个用户之间共享数据,
ApplicationData
是错误的选择:


作为当前漫游用户的应用程序特定数据的公共存储库的目录

漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络上的服务器上,并在用户登录时加载到系统中


请参阅枚举,并选择一个适合您的需求的适当值-一个不依赖于特定用户的值。大多数文件夹都以
Common

开始,只有您知道此文件夹的具体要求,但是如果要在多个用户之间共享数据,
ApplicationData
是错误的选择:


作为当前漫游用户的应用程序特定数据的公共存储库的目录

漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络上的服务器上,并在用户登录时加载到系统中


请参阅枚举,并选择一个适合您的需求的适当值-一个不依赖于特定用户的值。大多数文件夹都以
Common

开始,只有您知道此文件夹的具体要求,但是如果要在多个用户之间共享数据,
ApplicationData
是错误的选择:


作为当前漫游用户的应用程序特定数据的公共存储库的目录

漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络上的服务器上,并在用户登录时加载到系统中


请参阅枚举,并选择一个适合您的需求的适当值-一个不依赖于特定用户的值。大多数应用程序都是从
Common

开始的,我建议您检查并确保两个应用程序由同一用户运行。 我在winform应用程序和webservice应用程序中测试了您的代码,但它们的值是相同的,所以我找不到您真正的问题。
祝你好运

我建议您检查并确保两个应用程序由同一用户运行。 我在winform应用程序和webservice应用程序中测试了您的代码,但它们的值是相同的,所以我找不到您真正的问题。
祝你好运

我建议您检查并确保两个应用程序由同一用户运行。 我在winform应用程序和webservice应用程序中测试了您的代码,但它们的值是相同的,所以我找不到您真正的问题。
祝你好运

我建议您检查并确保两个应用程序由同一用户运行。 我在winform应用程序和webservice应用程序中测试了您的代码,但它们的值是相同的,所以我找不到您真正的问题。
祝你好运

ApplicationData是特定于用户的。。。您确定不需要CommonApplicationData吗?“作为当前漫游用户特定于应用程序的数据的公共存储库的目录。”-为什么您希望不同用户的数据相同?任何一位都应该将此作为答案发布。我还没有测试过它,但它完全有意义,因为桌面应用程序在登录用户下运行,而服务在LocalSystem下运行。ApplicationData是用户特定的。。。您确定不需要CommonApplicationData吗?“作为当前漫游用户特定于应用程序的数据的公共存储库的目录。”-为什么您希望不同用户的数据相同?任何一位都应该将此作为答案发布。我还没有测试过它,但它完全有意义,因为桌面应用程序在登录用户下运行,而服务在LocalSystem下运行。ApplicationData是用户特定的。。。您确定不需要CommonApplicationData吗?“作为当前漫游用户特定于应用程序的数据的公共存储库的目录。”-为什么您希望不同用户的数据相同?任何一位都应该将此作为答案发布。我还没有测试过它,但它完全有意义,因为桌面应用程序在登录用户下运行,而服务在LocalSystem下运行。ApplicationData是用户特定的。。。您确定不需要CommonApplicationData吗?“作为当前漫游用户特定于应用程序的数据的公共存储库的目录。”-为什么您希望不同用户的数据相同?任何一位都应该将此作为答案发布。我还没有测试出来,但它是完全有意义的,因为桌面应用程序是