我遇到了Visual Studio Express 2010 c#版本的問題。 我有一個參考DLL的項目。這個DLL有標記爲 生成操作外部Excel文件=內容 複製到輸出目錄=複製始終用clickonce在c#解決方案中部署外部文件
當我構建解決方案,這個Excel文件正確複製到BIN \發佈解決方案文件夾。
但是如果我嘗試部署相同的解決方案,使用Publish嚮導,Excel文件不會複製到安裝目錄中。
請問誰能幫助我?
我遇到了Visual Studio Express 2010 c#版本的問題。 我有一個參考DLL的項目。這個DLL有標記爲 生成操作外部Excel文件=內容 複製到輸出目錄=複製始終用clickonce在c#解決方案中部署外部文件
當我構建解決方案,這個Excel文件正確複製到BIN \發佈解決方案文件夾。
但是如果我嘗試部署相同的解決方案,使用Publish嚮導,Excel文件不會複製到安裝目錄中。
請問誰能幫助我?
您是否在說Excel文件僅被您在項目中包含的dll引用?這是次要參考,ClickOnce不會看到它並自動包含該文件。
首先,在你的dll上,我假設它是由你的項目直接引用的。如果是這樣,那麼一定要將其添加到項目中,並將生成操作設置爲「無」,將「複製到輸出目錄」設置爲「不要複製」。然後刪除對它的引用並重新添加它,將它指向現在包含在項目中的版本。將「複製本地」屬性設置爲「true」。這將確保dll本身得到正確部署。對於Excel文件,您將不得不將其添加到您的項目中。將構建操作設置爲「內容」並將「複製到輸出目錄」設置爲「始終複製」。它不會被自動包含,因爲它是ClickOnce應用程序的輔助引用,而不是像dll那樣的直接/主要引用。
嘗試包含這個文件到溶液中,然後將「複製到輸出目錄」爲「始終複製」
它出現在你的文件是不是在「PublishFiles」列表中列出。打開項目屬性,進入「發佈」選項卡,點擊「應用程序文件」按鈕,確保你看到發佈狀態爲「包含」的文件列表中的DLL文件。
你可以通過插入Excel文件作爲一種資源,然後寫出來這樣避免此問題:
File.WriteAllBytes(DestinationFileName, Properties.Resources.MyResourceFile);
我做一個假設,即Excel文件是某種模板您正在使用從中構建輸出文件。
謝謝,在「應用程序文件」窗口中引用的DLL已正確列出,其中「發佈狀態」設置爲「包含」。但不知道如何在此菜單中包含外部Excel文件... – stexcec
您可能還想將Excel文件添加到項目中,將它的生成操作和屬性設置爲您爲DLL文件所做的操作(複製到輸出目錄和複製如果更新或始終,取決於您的選擇)。 – Arun