2016-03-06 200 views
0

我有openblas.targets文件,该文件具有以下内容:错误路径导致错误MSB3030:无法复制文件

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemDefinitionGroup> 
    <ClCompile> 
     <PreprocessorDefinitions>HAS_OPENBLAS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 
     <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\..\lib\native\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 
    </ClCompile> 
    </ItemDefinitionGroup> 
    <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> 
    <Link> 
     <AdditionalDependencies>$(MSBuildThisFileDirectory)..\..\lib\native\lib\win32\libopenblas.dll.a;%(AdditionalDependencies)</AdditionalDependencies> 
    </Link> 
    </ItemDefinitionGroup> 
    <ItemDefinitionGroup Condition="'$(Platform)'=='x64'"> 
    <Link> 
     <AdditionalDependencies>$(MSBuildThisFileDirectory)..\..\lib\native\lib\x64\libopenblas.dll.a;%(AdditionalDependencies)</AdditionalDependencies> 
    </Link> 
    </ItemDefinitionGroup> 
    <ItemGroup Condition="'$(Platform)'=='Win32'"> 
    <CopyToOutput Include="$(MSBuildThisFileDirectory)..\..\lib\native\bin\win32\*.dll" /> 
    </ItemGroup> 
    <ItemGroup Condition="'$(Platform)'=='x64'"> 
    <CopyToOutput Include="$(MSBuildThisFileDirectory)..\..\lib\native\bin\x64\*.dll" /> 
    </ItemGroup> 
    <Target Name="OpenBLAS_AfterBuild" AfterTargets="AfterBuild"> 
    <Copy 
     SkipUnchangedFiles="true" 
     UseHardlinksIfPossible="true" 
     SourceFiles="@(CopyToOutput)" 
     DestinationFolder="$(TargetDir)" /> 
    </Target> 

</Project> 

而且同时建立使用它作为一个依赖关系的项目导致此错误:

E:\msCaffe\NugetPackages\OpenBLAS.0.2.14.1\build\native\openblas.targets(26,5): error MSB3030: Could not copy the file "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\msvcr120.dll" because it was not found. 
E:\msCaffe\NugetPackages\OpenBLAS.0.2.14.1\build\native\openblas.targets(26,5): error MSB3030: Could not copy the file "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT\msvcr120d.dll" because it was not found. 

这是正确的文件是在

E:\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT 
E:\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT 

我VS安装在E:\Microsoft Visual Studio 12.0我不知道为什么把它当作C:\Program Files (x86)\Microsoft Visual Studio 12.0

如何解决此问题?

+0

路径来看,您似乎没有显示所有相关的代码。错误是关于复制msvcr120 dll,但在你显示的代码中没有任何地方声明这些文件是被声明的。(好吧,除非这个想法是$(MSBuildThisFileDirectory).. \ .. \ lib \ native \ bin \ win32 \被硬编码为符号链接到C:\ Program Files文件(x86)\ Microsoft Visual Studio 12.0 \ VC \ redist \ x64 \ Microsoft.VC120.CRT这将是一种几乎荒谬的方式来实现此特定功能)。无论如何,我会为OpenBlas提交一个错误报告,因为它可能是他们的错误。 – stijn

回答

0

检查变量

SourceFiles="@(CopyToOutput)" 
+0

您是否在讨论''?我认为'@ CopyToOutput'是指这些? –

相关问题