我一直在挖掘Google試圖找到合適的方式來確定用戶從安裝嚮導中選擇的安裝路徑。Visual Studio安裝項目:獲取目標目錄
基本上我遇到了一個問題,我的服務無法在自己的目錄中創建文件,因爲它缺少適當的權限。我假設解決這個問題的正確方法是確保服務使用的任何帳戶在其文件夾上都有適當的文件權限。
但在我甚至可以解決如何通過.Net設置權限之前,我需要知道安裝文件夾。我正在使用一個安裝項目,它有一個安裝程序類,其中還包含一個ServiceInstaller
控件。兩者都有Context
屬性,因此我一直在檢查AfterInstall事件觸發每個相應安裝程序時可用的參數。我想起初我會看到TargetDir
屬性集,但事實並非如此。但是,我看到AssemblyPath
已設置並指向相應文件夾的可執行文件。
基本上我只是想確保,這是適當的方法,我應該使用:
private void ProjectInstaller_AfterInstall(object sender, InstallEventArgs e)
{
string InstallPath = System.IO.Path.GetDirectoryName(serviceInstaller1.Context.Parameters["AssemblyPath"]);;
}
您還必須在反斜槓「\」後添加額外的空格。否則,在安裝或卸載時可能會遇到FileNotFoundException異常。見[這裏](http://stackoverflow.com/questions/4516256/how-do-i-fix-setup-project-with-custom-action-file-not-found-exception/4522825#4522825)或[這裏](http://stackoverflow.com/questions/8491095/error-1001-using-custom-installer-with-visual-studio-2008)。 – 2013-08-11 08:24:20
你在哪裏使用這一點文字?你的解釋不是很清楚,對不起。作爲項目的命令行參數?代碼中的某處?現在MSDN的鏈接也被破壞了。感謝微軟! :-) – 2014-05-15 22:54:35
哦,我明白了。我在另一篇文章中找到了答案: 「在您的部署項目中,添加一個用於安裝和提交的自定義操作。對於安裝自定義操作的CustomActionData屬性,輸入/ Targetdir =」[TARGETDIR] \「」 – 2014-05-15 22:56:33