14

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

4

5 回答 5

27

所以汤姆已经解释了如何添加文件。您明确表示您希望在发布 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>,您将看不到解决方案资源管理器中混乱的项目。

于 2014-06-18T14:25:36.290 回答
23

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

于 2012-12-01T19:28:23.250 回答
1

假设我们有两个项目: main -ProjectA以及其他一些ProjectBProjectA. 在ProjectB我们有一个FolderB包含一些文件的文件夹,这些文件应该包含在ProjectA.

一旦我们构建,目录ProjectA中就会有所有引用的文件和文件夹bin。但是当我们使用 ClickOnce 工具发布解决方案时,引用的文件夹ProjectB不会包含在安装程序中,您也不会Application Files在项目发布设置的窗口中看到它们。

解决方案是创建一个名为FolderBin的新文件夹,并使用Add As Link选项ProjectA将现有项目表单添加FolderBProjectB这个新文件夹中。然后所有文件,包括链接到文件夹的文件,都将包含在发布中。ProjectAProjectB

于 2016-09-26T13:18:59.637 回答
0

自 OP 以来已经有很长时间了,但是当我将文件夹添加到我的解决方案时,将 Crystal Report 添加到该文件夹​​并将其标记为“内容”(根据 Tom),然后发布并安装 - 文件夹和报告被添加到ClickOnce 安装位置。所以汤姆的解决方案对我有用。

于 2015-04-12T21:04:03.057 回答
0

巴里有最好的解决方案,真的解决了我需要的一切!无需在多个项目中包含相同的文件,只需设置在调试中复制文件以实现本地功能和调试的预构建事件。解决了我在一个位置使用 rdlc(报告)并在多个项目中使用它们的问题。

于 2017-10-07T21:23:33.643 回答