я столкнулся очень странный вопрос:как получить папку данных приложения 32 битные из 64-разрядных приложений на 64-битной машине с помощью C# код
Я получил 64 битные C# .NET приложения на 64 битом Windows Server 2008 машины R2 с и он запускается службой Windows и запускается под пользователем Local System User. Кроме того, это 64-битное приложение C# .net запускает 32-битное Java-приложение, и это Java-приложение имеет папку данных приложения для C: \ Windows \ SysWOW64 \ config \ systemprofile \ AppData. 64-битное приложение C# .net имеет папку данных приложения для C: \ Windows \ System32 \ config \ systemprofile \ AppData
Итак, для 32-битной прикладной папки данных приложения (в случае использования локальной системы User): - C: \ Windows \ SysWOW64 \ Config \ systemprofile \ AppData
и для 64-битных папку приложения приложения данных (в случае локальной пользовательской системы): - C: \ Windows \ System32 \ Config \ systemprofile \ AppData
Обращаем ваше внимание, что это не ошибка ввода, которую они ссылаются на противоположные папки (это решение Microsoft для 64-разрядной ОС), вы можете прочитать https://msdn.microsoft.com/en-us/library/aa384187.aspx для подробного объяснения.
Теперь мне нужно написать несколько файлов в 32-битную папку данных приложения из 64-разрядного приложения, так как эти файлы будут использоваться 32-битным Java-приложением.
Итак, мне нужно знать, как я могу получить 32-битную папку данных приложения из 64-разрядного приложения, используя C# .net.
Важное примечание: эта проблема возникла бы при запуске приложения под локальным системным пользователем (то есть приложение было запущено службами окон), и не будет никакой проблемы, когда пользователь явно запускает приложение beacause в этом случае , папка данных пользовательских приложений будет одинаковой для 64-битного и 32-битного приложений.
«это ошибка от Microsoft для 64-разрядной ОС» - это не ошибка *, это продуманное дизайнерское решение. –
может быть позволено исправить мое заявление –
Почему вы не используете ** Environment.GetFolderPath (Environment.SpecialFolder.SystemX86) ** и ** Environment.GetFolderPath (Environment.SpecialFolder.System) ** для 32-битных и 64-битных данных приложения путь, а затем добавить config/systemprofile/AppData? –