2013-01-08 55 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)任務來代替。

相關問題