2015-09-13 103 views
1

在另一個項目中,我想指向我的項目的App_Data文件夾中的一個文件。所以在Web.Config中我添加了這個。如何在Visual Studio中獲取另一個項目的路徑?

<appSettings> 
    <add key="filePath" value= "App_Data/MyFile.xml" /> 
</appSettings> 

然後在我的控制器中,我用它來訪問文件。

string relativePath = ConfigurationManager.AppSettings["filePath"]; 
string xmlData = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, relativePath); 

那偉大工程,但現在,我需要在另一個項目中的文件,在同一個解決方案

BaseDirectory指向我目前所在的項目文件夾。我能做些什麼來從那裏獲得一個級別?有沒有一種方法可以讓我找到解決方案的路徑?

更多信息

更清楚,我想從我的web應用程序打開控制檯應用程序。現在我正在調用一個控制器,它可以像這樣獲得硬編碼路徑。我需要這條路纔是相對的。

Process process = new Process(); 

//Path of the file  
process.StartInfo.FileName = "C:\\Users\\MyName\\Documents\\Visual Studio 2015\\Projects\\SolutionName\\ConsoleApp\\bin\\Debug\\ConsoleApp.exe"; 

process.Start(); 

UPDATE

而不是去到另一個項目,我只是改變了控制檯應用程序的Web應用程序項目的bin/Debug文件夾的輸出路徑。這樣我可以留在相同的項目文件夾中,並使用之前使用過的相同路徑的東西來訪問控制檯應用程序。

回答

0

首先,我會使用application settings而不是appSettings,這比需要一些「魔術字符串」(ConfigurationManager.AppSettings["filePath"];)來訪問。應用程序設置用於像這樣的代碼Properties.Settings.Default.SettingName,它們是強類型的,並且也存儲在應用程序配置文件中。

其次,你可以從任何類似的項目訪問文件。問題是,如何獲取文件到輸出目錄。

這是由Build actionCopy To Output Directory在Visual Studio文件的屬性中完成的。另一個項目可以由「主要」項目引用。

此外,如果項目更像是一個資源,您可以使用Resources來存儲它,並避免直接訪問驅動器上的文件。

+0

不知道我得到這個。我在我的問題中添加了一些額外的信息。我試圖去的文件是一個exe文件,所以我不認爲這是可用於複製到輸出目錄設置。不太熟悉這個過程。 – madvora

+1

你是否絕對*確定你需要調用控制檯應用程序?你不能只用它的接口並調用一些方法嗎?這很奇怪......特別是如果我的水晶球是正確的,你所稱的是解決方案中的另一個項目。我這樣的情況可能足以將[reference](https://msdn.microsoft.com/en-us/library/f3st0d45.aspx)添加到項目並直接調用它。 – Matyas

+0

是的,我需要調用控制檯應用程序。基本上這是一個編碼練習。我只是證明我可以從Home/Index頁面調用web api(點擊按鈕)然後點擊另一個按鈕打開我的控制檯應用程序,它調用相同的web api。如果你可以在最後解釋你的參考評論,我將不勝感激,或任何解決方案,打開我的控制檯應用程序exe按鈕點擊一個網頁(相同的解決方案,不同的項目) – madvora

0

要設置一個參考路徑

  1. 在解決方案資源管理器中,選擇項目。

  2. 在項目菜單上,單擊屬性。

  3. 單擊參考路徑。

  4. 在「文件夾」文本框中,指定包含部件的文件夾的路徑。要瀏覽到該文件夾​​,請單擊省略號(...)。

  5. 點擊添加文件夾。

要覆蓋參考路徑

  1. 在解決方案資源管理器中,選擇項目。

  2. 在項目菜單上,單擊屬性。

  3. 單擊參考路徑。

  4. 在參考路徑框中,選擇要覆蓋的路徑。

  5. 在「文件夾」文本框中,指定包含部件的文件夾的路徑。要瀏覽到路徑,請單擊省略號(...)。

  6. 點擊更新。在「參考路徑」框中選擇的路徑將被「文件夾」文本框中指定的路徑覆蓋。

要刪除參考路徑

  1. 在解決方案資源管理器中,選擇項目。

  2. 在項目菜單上,單擊屬性。

  3. 單擊參考路徑。

  4. 在「引用路徑」框中,選擇要刪除的路徑。

  5. 單擊刪除。

相關問題