如何在构建时将其他文件包含到 C# 的输出目录中?

问题描述 投票:0回答:3

我的应用程序需要一些库文件才能工作。
我的应用程序包含设置和部署。

我已经知道,为了在安装时将库文件添加到应用程序的输出目录中,我只需在构建之前在 .NET IDE 中引用这些库...唯一的问题是这些库不能不被引用...所以我需要能够将这些库复制到我的应用程序的安装目录...目前,我正在手动复制这些库...

附录

我也尝试将这些库文件作为现有项目添加到我的项目中,并在其属性上标记每个库文件的复制到输出目录如果更新则复制,但仍然没有得到我想要的解决方案。

更新1

感谢你们的帮助,它帮助我解决了我的问题,我设法使您发布的解决方案有效,除了一个...@Matthew Watson 的帖子..我什至也设法找到了一个解决方案,所以我想与您分享还有。

这就是我所做的:

  1. 我在我的应用程序中打开了设置和部署项目。
  2. 在应用程序文件夹树下,在其右侧,我右键单击..
  3. 然后点击添加..
  4. 然后单击文件
  5. 然后浏览我想要添加到安装目录的文件
  6. 然后点击打开。

但出于好奇......我仍在努力使@Matthew Watson 发布的内容发挥作用......

更新2

我昨天忘了更新这篇文章,昨天我已经设法使马修·沃森的解决方案发挥作用。再次感谢大家的帮助。

c# .net installation
3个回答
97
投票

您可以将文件添加到项目中并选择其属性:

"Build Action"
"Content"
"Copy to output directory"
"Copy Always"
Copy if Newer
(后者更可取,否则每次构建时项目都会完全重建)。

然后这些文件将被复制到您的输出文件夹。

这比使用构建后步骤更好,因为 Visual Studio 会知道这些文件是项目的一部分。 (这会影响 ClickOnce 应用程序等需要知道要添加到 clickonce 数据中的文件。)

您还可以更轻松地查看项目中的哪些文件,因为它们将与源代码文件一起列出,而不是隐藏在构建后步骤中。而且源代码管理也可以更轻松地与它们一起使用。

将“内容”文件添加到项目后,您将能够将它们添加到 Visual Studio 2010 安装和部署项目,如下所示:

进入您的安装项目并将名为

"Application Folder"
的项目输出添加到您的
"Content Files"
输出中。如果您在添加内容文件后右键单击它们,您可以选择“输出”并查看它将复制什么。

请注意,Visual Studio 2012 不支持安装和部署项目。


4
投票

您可以使用 Visual Studio 构建后事件 - 复制到相对目录位置。这些基本上是在指定项目的构建上执行的脚本。

因此您可以在实际运行应用程序之前使用它来复制所需的二进制文件。


0
投票

<ItemGroup> <None Update="path/to/file.txt"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup>

请注意,该路径是相对于 csproj 的。您可以将该值设置为“从不”、“保留最新”或“始终”。

© www.soinside.com 2019 - 2024. All rights reserved.