2011-05-04 18 views
6

在我的VS解決方案的主項目中,我有一個Resources文件夾,其中包含一些必需的外部工具。在構建和發佈解決方案時,我會得到一個包含所有必需文件的。\ Resources *。 目前爲止這麼好。如何在Visual Studio中設置給定資源文件的目標輸出路徑

但是我必須移動一些文件到父目錄。 我的第一次嘗試是在Post Build Events中完成的。它的工作原理,並將它們移動到正確的文件夾。 儘管如此,在發佈輸出他們仍然出現在資源文件夾,我需要他們在父母之一:/

有什麼辦法來設置目標輸出路徑的資源在Visual Studio中?

+0

爲什麼不乾脆把它們開始與父文件夾,如果那是屬於他們的地方? – 2011-05-04 21:19:23

+0

主應用程序使用幾個.exe文件(通過新的進程創建+開始),我不希望它們與代碼混合。 – Bruno 2011-05-06 15:00:17

+0

在問題的另一方面,如果我更改它們的路徑,每個用戶都會使用它必須正確設置它的路徑,這不是現在的選擇。這就是爲什麼我必須將它們發佈到根文件夾中:/ – Bruno 2011-05-06 15:06:07

回答

1

一些研究和實驗後,我解決我的問題。 不過,這是我在這個過程中學到的。

第一次嘗試是將文件添加到項目根目錄並將其標記爲資源。發佈後它工作。但是讓項目中的這些文件變得蹩腳。

因爲我需要另一個與解決方案整理了一些* .exe文件,添加它們作爲一個項目引用。試一試,它通過了「發佈」測試。但仍然..不是最好的方式來做到這一點。

之後,有一些腳本和一個生成後事件,我複製所需的文件到正確的文件夾。工程..但發佈後,他們不出現在包。

但是,仍與法師工具的可能性:

http://msdn.microsoft.com/en-us/library/acz3y3te.aspx

這導致一些promissing實驗,但是他們最終幫助我實現如何限制MS ClickOnce是,所以我決定嘗試其他工具。

這裏有一個良好的開端遵循: What alternatives are there to ClickOnce?

0

我曾經有過類似的情況。我發現它比在Visual Studio中自定義輸出路徑等更麻煩,只要我想要。

我結束了讓Visual Studio中做自己的事與問候到文件/項目結構,並寫了一個生成後腳本複製需要到最後,「發佈就緒」目錄中的一切。

我然後設置執行目標在Visual Studio中的新位置,所以我可以運行/調試正常,但是這是有組織的我是多麼需要它的新文件夾。小心,我認爲這是一個用戶項目設置;所以其他開發者也需要在他們的機器上這樣做,如果他們願意的話。

我不記得改變一些輸出路徑和這樣使生成後的腳本更簡單。但是,當您將新項目添加到解決方案時,更改這樣的內容可能會導致煩惱。您可能需要配置它們以匹配。這都是一個權衡:)

0

兩個想法:

  • 也許你可以將你的資源到另一個項目 - 只是一個項目的資源 - 然後設置其Build ActionContentCopy To Outputtrue。然後參考這個新項目並構建解決方案。 (這可能無法正常工作,只是一個想法)。
  • 爲什麼不改變你的資源嵌入式資源。將它們全部保存在Resources\目錄中並以編程方式訪問它們?
相關問題