2010-01-22 133 views
0

當我將文件添加到我的安裝部署項目中時,Visual Studio將不允許我編輯「SourcePath」來解析像$(DLL_PATH)這樣的環境變量。它在我的本地機器上添加具有源路徑的文件並在本地生成。當在另一臺機器上構建相同的項目時,除非該機器具有完全相同的文件路徑才能工作。VS2008安裝項目 - 可移植性

我想讓SourcePath解決$(DLL_PATH),只要一臺機器具有正確的定義,MSI包就可以正常生成。

對subst的不確定,因爲我無法控制其他編譯機的外觀。如果我嘗試將已知目錄分配給虛擬驅動器,它可能會失敗?

回答

1

實際上我所做的就是設置一個script.cmd在我的項目輸出生成後,將相關性複製到與聲明的$(DLL_PATH)相關的實際項目文件夾的文件夾中。安裝項目實際上使用了相對於項目的路徑,而不是絕對路徑。所以無論製造機器是什麼樣的,它都可以工作。然後在最後刪除此文件夾的腳本。

1

最好的辦法是使用subst.exe或聯結點來創建一個虛擬目錄。有關連接點的信息,請參閱here。 Subst.exe只是創建一個虛擬驅動器號。將所有可部署的文件放在具有定義良好的常量子路徑的目錄樹中,並使該樹的根爲聯結點或虛擬驅動器。

+0

我對其他編譯機沒有任何瞭解,是否可以使用subst.exe在編譯機上創建虛擬驅動器? – Watts 2010-01-22 23:18:45

+0

您需要知道生成計算機沒有已分配的驅動器號。當腳本完成時,您應該確保執行subst.exe/u以取消分配它。除此之外,你是金。 – 2010-01-22 23:33:51

+0

你會認爲他們會讓你做一些編輯文件的路徑。我添加了一個腳本,在構建setup.exe之前將文件從變量位置複製到項目輸出文件夾中,然後從那裏添加它們。我認爲subst也會起作用,但我不確定在構建機器上的設置,所以它不是100%有效的。 – Watts 2010-01-25 20:55:14