gpt4 book ai didi

c# - 如何将必要的文件包含到独立客户端项目的输出中?

转载 作者:太空狗 更新时间:2023-10-29 18:16:16 24 4
gpt4 key购买 nike

我的解决方案包括:

Client - 启动项目,UI 层。取决于:App

App - 库、应用层、汇编器。取决于:Lib1, ...

Lib1 - 库,业务逻辑层。需要特定文件才能正常工作:ThirdParty.dll

我已将 ThirdParty.dll 添加到 Lib1 项目(Add > Existing Item... > Add) 并将 dll 文件的 Copy to Output Directory 属性设置为 Copy Always。现在 dll 文件被复制到 Lib1 输出和 App 输出,但没有复制到我需要的 Client 输出。

在每个解决方案构建中将 ThirdParty.dll 复制到 Client 输出的正确(简单?显而易见?)方法是什么?

UPDThirdParty.dll 不是引用。实际上,这是另一个引用依赖。我的问题适用于需要位于正在运行的应用程序文件夹中的任何文件。

录制视频以确保我做对了:http://youtu.be/QwS2tOIc5yQ

最佳答案

将现有项目添加为链接:

我在 VS2010 中遇到了类似的问题,最后我将文件添加为 Link 并将其属性更新为 Copy Always

在您的情况下,在 CLIENT 项目中,将 ThirdParty.dll 添加为 Link(添加 > 现有项 > 添加为链接)并设置Copy to Output Directory 将 dll 文件的属性设置为 Copy Always注意:它会从项目节点复制文件夹层次结构。

仅供引用:我实际上使用的是开源 LibGit2Sharp这需要在输出目录中提供一个 dll (libGit2.dll)。因此,在UI层,添加了包含LibGit2Sharp.dll的应用层作为引用;我必须将 libGit2.dll 添加为 Link + Copy Always。这是推荐的解决方案。

后期构建:

另一种选择是为 CLIENT

编写后期构建脚本

要了解MSBuild 上的Copy 是如何工作的,您可以引用Microsoft.Common.targets 文件(应该在@C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 在你的系统中)

<Target
Name="CopyFilesToOutputDirectory"
DependsOnTargets="
ComputeIntermediateSatelliteAssemblies;
_CopyFilesMarkedCopyLocal;
_CopySourceItemsToOutputDirectory;
_CopyAppConfigFile;
_CopyManifestFiles;
_CheckForCompileOutputs;
_SGenCheckForOutputs">

关于c# - 如何将必要的文件包含到独立客户端项目的输出中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16791310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com