簡體   English   中英

防止應用程序在錯誤的文件夾中運行

[英]Prevent Application from running inside the wrong folder

我有一個(相當大的)應用程序,它取決於與該應用程序位於同一文件夾中的某些資源(例如,設置文件,非托管庫等)。
我還為此應用程序注冊了一個URI協議,以便每個以xyz://...開頭的URI調用都將使用各自的參數啟動我的應用程序。

問題是,如果您使用URI調用,則應用程序將從%windir%/system32 -folder或../ProgramFiles/Chrome/... -folder(當從我的Webbrowser調用URI時)運行)。 它不會從它所在的文件夾中運行我的應用程序。

(您可能已經看到我的問題了……)

如果我的應用程序是從sys32文件夾運行的,那么它(自然)將無法訪問本地庫,這是我的某些P / Invoke函數所需的。


我的問題是:如何從正確的文件夾運行我的應用程序,或者阻止它從sys32等文件夾運行?


否-我不喜歡以下想法:

 if (Directory.GetCurrentDirectory().ToLower() != "/my/home/dir") { MessageBox.Show("You have no power over here!"); Exit(1); } 

好的- @MutantNinjaCodeMonkey的 評論 最終幫助了我:

Directory.SetCurrentDirectory(@"c:\path\to\app");

將工作目錄“重置”到所需的路徑。 在我的特定情況下,我使用了:

FileInfo nfo = new FileInfo(Assembly.GetExecutingAssembly().Location);

Directory.SetCurrentDirectory(nfo.Directory.FullName);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM