ast*_*tef 8 c# dependencies projects-and-solutions visual-studio-2010
我的解决方案包括:
Client - 启动项目,UI层.依赖于取决于:App
App - 库,应用程序层,汇编程序.取决于:Lib1,......
Lib1 - 库,业务逻辑层.需要特定文件才能正常工作:ThirdParty.dll
我已经添加ThirdParty.dll到Lib1项目中(Add> Existing Item...> Add),并设置Copy to Output DirectoryDLL文件的属性Copy Always.现在dll文件被复制到Lib1输出和App输出,但不是复制到Client我需要的输出.
什么是复制ThirdParty.dll到Client每个解决方案构建的输出的正确(简单?明显?)方式?
UPD
ThirdParty.dll不是参考.实际上,这是另一个参考依赖.我的问题适用于需要在运行应用程序的文件夹中的任何文件.
录制的视频,以确保我做得对:http://youtu.be/QwS2tOIc5yQ
jac*_*ous 10
将现有项添加为链接:
我有一个类似的问题VS2010,我有点最后添加文件Link并更新其属性Copy Always.
在您的情况下,在CLIENT项目中,添加ThirdParty.dll为Link(添加>现有项>添加为链接)并将Copy to Output Directorydll文件的属性设置为Copy Always.
注意:它将从项目节点复制文件夹层次结构.
仅供参考:我实际上使用的是开源LibGit2Sharp,它需要在输出目录中提供dll(libGit2.dll).因此,在UI层中,添加了包含LibGit2Sharp.dll作为参考的应用层; 我不得不添加libGit2.dll为Link+ Copy Always.这是推荐的解决方案.
发布后:
另一种选择可能是编写后期构建脚本 CLIENT
要知道如何Copy在MSBuild作品中,你可以参考Microsoft.Common.targets文件(应提供@ C:\ WINDOWS\Microsoft.NET \框架\ v4.0.30319 \在您的系统Microsoft.Common.targets)
<Target
Name="CopyFilesToOutputDirectory"
DependsOnTargets="
ComputeIntermediateSatelliteAssemblies;
_CopyFilesMarkedCopyLocal;
_CopySourceItemsToOutputDirectory;
_CopyAppConfigFile;
_CopyManifestFiles;
_CheckForCompileOutputs;
_SGenCheckForOutputs">
Run Code Online (Sandbox Code Playgroud)