繁体   English   中英

在ClickOnce应用程序中包含一个文件夹

[英]Include a Folder in ClickOnce Application

我已经创建了一个Windows C#项目,并将其作为安装的ClickOnce应用程序(在项目属性中发布功能)。 我想要包含一个包含 Crystal Report(rpt)文件的文件 在我的应用程序中,我已将rpt文件的路径作为我的安装位置。 如何在发布时包含此文件夹。 这样我就不需要手动复制文件夹了。

汤姆已经解释了如何添加文件。 您明确表示要在发布后向ClickOnce应用程序添加文件夹。 让我们假设您的解决方案的根目录中有一个名为Dependencies的文件夹,其中包含一个文件夹Reports ,其中包含所有RPT文件。 以下是如何确保已部署的应用程序包含Dependencies文件夹的所有内容:

  1. 在Visual Studio中右键单击您的项目,然后选择“卸载项目”。
  2. 右键单击并选择编辑csproj文件。
  3. 在结束</Project>标签之前添加:

    <ItemGroup>
    <Content Include="$(SolutionDir)Dependencies\\**\\*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <Visible>false</Visible>
    </Content>
    </ItemGroup>

  4. 这将从Dependencies文件夹添加到项目中的所有内容。 我们在Include和%(RecursiveDir)的末尾使用\\**\\*语法,以确保Reports文件夹将出现在已发布的版本以及报告文件中。 设置<Visible>false</Visible>您将看不到混乱解决方案资源管理器的项目。

您必须将项目添加到项目并将其标记为“内容”(在解决方案资源管理器中选择项目,右键单击,属性,设置构建操作)。

假设我们有两个项目:main - ProjectA和其他一些引用ProjectA ProjectB ProjectB我们有一个文件夹FolderB ,其中包含一些应包含在ProjectA publish(pdf,rpt等)中的文件。

一旦我们构建了ProjectAbin目录中就会有所有引用的文件和文件夹。 但是,当我们使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM