Visual Studio复制设置为“不复制”的DLL文件

时间:2017-06-08 14:43:28

标签: c# .net visual-studio msbuild

在我的VS 2015项目中,我有一个包含一些.dll文件的文件夹,我想根据平台使用post build脚本将其复制到输出目录。

要阻止Visual Studio触摸它们,我将属性“复制到输出目录”设置为“不复制”。我还将“Build Action”设置为“None”。

但是当我构建项目时,无论如何都会将.dll文件中的一些(但不是全部)复制到输出目录中。 我已经注释掉了我的帖子构建脚本。

构建输出日志表明文件是在目标“_CopyFilesMarkedCopyLocal”期间复制的:

1>Target "_CopyFilesMarkedCopyLocal" in file "C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets" from project
 "C:\SS\C#\InSQLMDASDriver2014R2\InSQLMDASDriverMain\InSQLMDASDriverMain.csproj" (target "CopyFilesToOutputDirectory" depends on it): 
1>Task "Copy"

... Copying of referenced assembly project output: 
1>  Copying file from "C:\SS\C#\InSQLMDASDriver2014R2\InSQLMDASDriverGui\bin\x86\Debug\InSQLMDASDriverGui.dll" to "bin\x86\Debug\InSQLMDASDriverGui.dll".

... Unwanted copying of static files below:

1>  Copying file from "C:\SS\C#\InSQLMDASDriver2014R2\InSQLMDASDriverMain\x64 Libraries\Historian.CBE.dll" to "bin\x86\Debug\Historian.CBE.dll". 
1>  Copying file from "C:\SS\C#\InSQLMDASDriver2014R2\InSQLMDASDriverMain\x64 Libraries\Historian.DPAPI.dll" to "bin\x86\Debug\Historian.DPAPI.dll".   

...    

1>Done executing task "Copy". 
1>Done building target "_CopyFilesMarkedCopyLocal" in project "InSQLMDASDriverMain.csproj".

为什么会这样?..

1 个答案:

答案 0 :(得分:0)

  

在我的VS 2015项目中,我有一个包含一些.dll文件的文件夹,我想根据平台使用post build脚本将其复制到输出目录。

是否要使用后期构建脚本将dll复制到输出目录而不是使用Visual Studio?如果我理解正确,您应该在References的属性中为dll设置copy local=False。例如:

enter image description here

使用此设置,Visual Studio将不会触及dll。