2013-01-08 30 views
0

我使用MSBuildFLACLAME来管理我的MP3收藏,但是当它遇到与文件名非ASCII字符的文件失败。MSBuild执行任务失败,Unicode文件名?

下,砍伐,项目文件显示问题:

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 
     ToolsVersion="4.0" DefaultTargets="Default"> 

    <PropertyGroup> 
    <FLAC>"C:\Program Files (x86)\Flac\bin\flac.exe"</FLAC> 
    </PropertyGroup> 

    <ItemGroup> 
    <Decode 
     Include="D:\Music\Artists\Kruder Dorfmeister\The K&amp;D Sessions\**" /> 
    </ItemGroup> 

    <Target Name="Default" Inputs="@(Decode)" Outputs="%(Identity).always"> 
    <Exec Command="$(FLAC) --decode &quot;@(Decode)&quot;" /> 
    </Target> 
</Project> 

当此到达"D:\Music\Artists\Kruder Dorfmeister\The K&D Sessions\Part One\02 - Jazz Master (K&D Session™).flac"时,出现以下错误消息:

Default: 
    "C:\Program Files (x86)\Flac\bin\flac.exe" --decode "D:\Music\Artists\Kruder Dorfmeister\The K&D Sessions\Part One\02 
    - Jazz Master (K&D SessionT).flac" 

    02 - Jazz Master (K&D SessionT).flac: ERROR initializing decoder 
    init status = FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE 

    An error occurred opening the input file; it is likely that it does not exist 
    or is not readable. 

正如你所看到的东西正在将“”并将其转换为“T”。

可是什么?我该如何解决这个问题?

回答

0

内置的MSBuild Exec任务将给定的命令写入批处理文件,然后使用cmd /c /q运行它。不幸的是,它写入与的OEM代码页的批处理文件。

这意味着,Unicode文件名是错位的。

你必须写自己的Exec(或Pipe,甚至ConvertMusic)任务来代替。

相关问题