[英]Include a Folder in ClickOnce Application
我已經創建了一個Windows C#項目,並將其作為安裝的ClickOnce應用程序(在項目屬性中發布功能)。 我想要包含一個包含 Crystal Report(rpt)文件的文件夾 。 在我的應用程序中,我已將rpt文件的路徑作為我的安裝位置。 如何在發布時包含此文件夾。 這樣我就不需要手動復制文件夾了。
湯姆已經解釋了如何添加文件。 您明確表示要在發布后向ClickOnce應用程序添加文件夾。 讓我們假設您的解決方案的根目錄中有一個名為Dependencies
的文件夾,其中包含一個文件夾Reports
,其中包含所有RPT文件。 以下是如何確保已部署的應用程序包含Dependencies
文件夾的所有內容:
在結束</Project>
標簽之前添加:
<ItemGroup>
<Content Include="$(SolutionDir)Dependencies\\**\\*">
<Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
<Visible>false</Visible>
</Content>
</ItemGroup>
這將從Dependencies文件夾添加到項目中的所有內容。 我們在Include和%(RecursiveDir)
的末尾使用\\**\\*
語法,以確保Reports
文件夾將出現在已發布的版本以及報告文件中。 設置<Visible>false</Visible>
您將看不到混亂解決方案資源管理器的項目。
您必須將項目添加到項目並將其標記為“內容”(在解決方案資源管理器中選擇項目,右鍵單擊,屬性,設置構建操作)。
假設我們有兩個項目:main - ProjectA
和其他一些引用ProjectA
ProjectB
。 在ProjectB
我們有一個文件夾FolderB
,其中包含一些應包含在ProjectA
publish(pdf,rpt等)中的文件。
一旦我們構建了ProjectA
, bin
目錄中就會有所有引用的文件和文件夾。 但是,當我們使用ClickOnce工具發布解決方案時,引用的ProjectB
文件夾將不會包含在安裝程序中,您將無法在項目發布設置的“ Application Files
窗口中看到它們。
解決方案是在ProjectA
創建一個名為FolderB
的新文件夾,並使用“ 添加為鏈接”選項將ProjectB
FolderB
現有項目添加到ProjectA
此新文件夾。 然后,所有文件(包括鏈接到ProjectB
文件夾的文件)都將包含在發布中。
OP已經很長時間了,但是當我向我的解決方案添加一個文件夾時,將Crystal Report添加到該文件夾並將其標記為“Content”(每個Tom),然后發布並安裝 - 文件夾和報告將添加到ClickOnce安裝位置。 湯姆的解決方案對我有用。
巴里擁有最好的解決方案,真正解決了我所需要的一切! 無需在多個項目中包含相同的文件,只需設置預構建事件即可在調試中復制文件以進行本地功能和調試。 使用rdlc(報告)在一個位置並在多個項目中使用它來解決我的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.