0

CruiseControl.net から MSBuild を実行しています。
CC を介してビルド サーバーでビルドすると、次のエラーで失敗するブランチが 1 つあります。

<target name="UpdateAssemblyInfo" startTime="11/13/2012 18:48:35" elapsedTime="00:00:01" elapsedSeconds="1" success="false">        
<error code="MSB4018" file="C:\Continuous Integration Projects\Project\Release\Build\Master.build" line="88" column="5" timeStamp="11/13/2012 18:48:36"><![CDATA[The "CreateItem" task failed unexpectedly.System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.   at System.IO.PathHelper.GetFullPathName()

エラーはさらに多くの行で続きます...

タスクは master.build で定義されています。

<Target Name="UpdateAssemblyInfo">    
    <CreateItem Include="$(SourcePath)\**\Properties\AssemblyInfo.cs">      
        <Output TaskParameter="Include" ItemName="UpdateAssemblyInfoFiles"/>
    </CreateItem>    
    <Attrib Files="@(UpdateAssemblyInfoFiles)" Normal="true" />    
    <AssemblyInfo AssemblyInfoFiles="@(UpdateAssemblyInfoFiles)"   AssemblyVersion="$(CCNetLabel)" AssemblyFileVersion="$(CCNetLabel)"/>  
</Target>

問題の原因となっている AssemblyInfo.cs を特定するにはどうすればよいでしょうか。
master.build ファイルに診断出力を追加する方法はありますか?

洞察をありがとう...

4

2 に答える 2

0

例外は、パスまたはファイル名が長さの制限を超えていることを示しています。

System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

AssemblyInfo.cs長さが文字未満であるため260、パスが気に入らないと推測できます。

248パス部分が文字以上か確認できますか?

于 2012-11-16T07:28:45.617 に答える
0

MSBuild の詳細レベルを に設定しdiag、出力を確認します。CCNET の<msbuild>タスクを使用していると仮定すると、次のようになります。

<msbuild>
  <!-- ... -->
  <buildArgs>/v:diag</buildArgs>
</msbuild>
于 2012-11-15T07:53:27.693 に答える