2009-05-04 42 views
0

我用VS2008創建了ClickOnce解決方案。 我的主項目引用另一個項目誰引用COM DLL爲「鏈接」。ClickOnce&References

當我在VS中構建我的解決方案時,來自其他項目的dll會移動到我的bin文件夾中,但當我發佈並啓動項目時,這些文件不會顯示在我的Local Settings \ Apps \ 2.0 ...文件夾中。

我知道我可以添加其他項目的每個DLL作爲我的主要項目的參考,但我想一個更清潔的解決方案......

這可能嗎?

回答

2

首先將這些文件直接添加到您的項目中。 然後轉到應用程序屬性 - >發佈 - >應用程序文件

選擇「顯示所有文件」,如果你沒有看到你所需要的文件,然後設置其 發佈狀態爲「包含」 NOT「包括(自動)」。這很重要,否則他們不會被添加。

請注意,如果您更新文件,您將不得不刪除它們並將它們再次添加 並再次設置它們的發佈狀態。這是一個小錯誤。

見我的前一個問題的更多信息: ClickOnce - Overwriting content files

0

您需要在項目的「發佈」選項卡中打開「應用程序文件」對話框。從那裏你可以設置每個文件的發佈類型(包括,先決條件等)。

如果它是一個非託管DLL,則需要將實際的.dll作爲文件添加到項目中,並將其構建操作標記爲「數據」。然後,您可以將該文件的發佈類型設置爲包含。

+0

好的,所以我必須添加每個COM DLL到我的主項目,即使它已經包含在被引用的項目中? – pebg 2009-05-04 13:43:10

+0

如果它實際上包含作爲參考,那麼只需將文件的發佈狀態修改爲「包含」即可。如果不包括它(例如,如果你通過pinvoke使用函數),那麼你將不得不手動添加它。 – 2009-05-04 13:53:03

0

我有同樣的問題....並通過許多選項後去解決這個問題的唯一辦法,是通過將這些DLL文件引用。

它可行,但我希望將來有更清晰的解決方案。