![](/img/trans.png)
[英]Set file to be opened automatically when opening a C# solution in Visual Studio
[英]C# opening file in a solution
我認為這個問題對你們大多數人來說可能是微不足道的,但不知何故我找不到答案......所以,我在這個解決方案中有一個Visual Studio 2008解決方案foo和一個項目欄。 在我的酒吧項目中,我有一個名為baz的目錄,它看起來像這樣:
foo dir
|
+-> bar dir
|
+-> baz dir
|
+-> asd file
現在我想在bar-project中打開我的“asd文件”,但需要“asd文件”的確切路徑,我該如何找到它? 我試過簡單的“baz \\ asd”,但它不起作用。
謝謝!
Ĵ
您想在運行時在C#應用程序中打開bar
-project中的文件嗎? 有幾種方法可以實現這一點,我會給你最簡單的。
asd
屬性 Content
Copy always
將復制到輸出目錄設置為Copy always
(或者Copy if newer
) 然后,您可以在C#中按如下方式引用該文件(假設您的程序不會將當前工作目錄從可執行目錄更改):
using (StreamReader reader = new StreamReader(@"baz\asd"))
{
// ...
}
其他方式涉及使用嵌入式資源 ,這不是最簡潔的解決方案。
如果您的意思是在運行時打開,程序實際上在bar \\ bin \\ debug(或bar \\ bin \\ release)中運行,因此您需要考慮到這一點。
通常我會做類似的事情:
#if DEBUG
filename = @"..\..\baz\asd";
#else
filename = @"baz\asd";
#endif
文件的相對位置是解決方案目錄。 因此,要在VS IDE中打開它,可以在“命令”窗口或“標准”工具欄上的“查找”文本框中鍵入(Ctrl-D):
>open bar\baz\asd
如果要在運行時執行此操作,則需要使用應用程序分發源文件,因為沒有任何保證它將在解決方案樹附近的任何位置執行。
如果你想從VS加載項中做到這一點,我確信有一個代表解決方案的類,你可以使用它來枚舉其中的項目,然后枚舉bar項目中的文件條目。
將一個簡單的Target添加到Build文件中可能會更好(項目文件 - 用於C#的csproj)。 在文本模式下打開csproj文件並添加:
如果你對發布感興趣,你需要加倍努力,但我想,你現在不要求它 - 所以,保持簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.