http://msdn.microsoft.com/en-us/library/cc826178.aspx命令で VisualStudio 2012 拡張機能を開発しています。
すべてがローカルで正常に動作します。
しかし、TFS でこのソリューションを構築しようとすると、次のエラーが発生します。
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.targets (991): Zip エラー: zip ファイルの作成に失敗しました C:\Builds\1\1CMobileClient\Release\Sources \ソース\<..>.zip.
サーバー: TFS 2012 + VS 2012 SDK
TFS ログ部分:
14:49:07.238 3> ターゲット "CalculateZipFiles: (TargetId:77)" ファイル "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.targets" からプロジェクト " C:\Builds\1\<..>.csproj" (ターゲット "ZipProjects" はそれに依存します): タスク "CalculateZipItems" は false 条件によりスキップされました。('%(ZipProject.RootPath)'!='' AND '@(ZipProject)' != '') は (''!='' AND 'Templates\Projects\HelloWorldMobileApp\MobileApp.vstemplate;Templates\Projects \HelloWorldMobileApp\Форма.xml;Templates\Projects\HelloWorldMobileApp\Configuration.xml;Templates\Projects\HelloWorldMobileApp__TemplateIcon.ico;Templates\Projects\HelloWorldMobileApp\ФормаМодуль.cs;Templates\Projects\HelloWorldMobileApp\Главный.bp; Templates\Projects\HelloWorldMobileApp\MobileApp.mobproj;Templates\Projects\MobileApp\MobileApp.vstemplate;Templates\Projects\MobileApp\Configuration.xml;Templates\Projects\MobileApp\Главный.bp;Templates\Projects\MobileApp\MobileApp.mobproj; Templates\Projects\MobileApp__TemplateIcon.ico' != '')。アセンブリ "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.Build.Tasks.dll" から "CalculateZipItems" タスクを使用します。タスク "CalculateZipItems" (TaskId:43) タスク "CalculateZipItems" の実行が完了しました。(TaskId:43) タスク "CalculateZipItems" (TaskId:44) タスク "CalculateZipItems" の実行が完了しました。(TaskId:44) タスク「CalculateZipItems」はスキップされました。誤った状態のため; ('%(ZipItem.RootPath)'!='' AND '@(ZipItem)' != '') は (''!='' AND 'Templates\Items\Process\Process.vstemplate;Templates\Items \Process\Процессс.bp;Templates\Items\Process__TemplateIcon.ico' != '')。タスク "CalculateZipItems" (TaskId:45) タスク "CalculateZipItems" の実行が完了しました。(TaskId:45) 14:49:07.240 3> プロジェクト "<...>Project.csproj" でターゲット "CalculateZipFiles" のビルドを完了しました。: (TargetId:77) 14:49:07.240 3>ターゲット "ZipProjects: (TargetIdプロジェクト「C:\Builds\1\1CMobileClient\Release\Sources\」のファイル「C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.targets」 Sources\<...>.csproj" (ターゲット "PrepareForRun" はそれに依存します): タスク "メッセージ" (TaskId:46) ProjectTemplates の圧縮 (TaskId:46) タスク "メッセージ" の実行が完了しました。(TaskId:46) タスク "ZipItems" は、条件が正しくないためスキップされました。('%(_ZipProject.RootPath)'!='' AND '@(_ZipProject)' != '') は (''!='' AND 'Templates\Projects\HelloWorldMobileApp\MobileApp.vstemplate;Templates\Projects \HelloWorldMobileApp\Форма.xml;Templates\Projects\HelloWorldMobileApp\Configuration.xml;Templates\Projects\HelloWorldMobileApp__TemplateIcon.ico;Templates\Projects\HelloWorldMobileApp\ФормаМодуль.cs;Templates\Projects\HelloWorldMobileApp\Главный.bp;Templates\Projects\HelloWorldMobileApp \MobileApp.mobproj' != '')。誤った条件のため、タスク「ZipItems」はスキップされました。('%(_ZipProject.RootPath)'!='' AND '@(_ZipProject)' != '') は (''!='' AND 'Templates\Projects\MobileApp\MobileApp.vstemplate;Templates\Projects \MobileApp\Configuration.xml;Templates\Projects\MobileApp\Главный.bp;Templates\Projects\MobileApp\MobileApp.mobproj;Templates\Projects\MobileApp__TemplateIcon.ico' != '')。アセンブリ「C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.Build.Tasks.dll」から「ZipItems」タスクを使用します。タスク "ZipItems" (TaskId:47) Zipping C:\Builds\1\1CMobileClient\Release\Sources\Sources\<..>\obj\Release\HelloWorldMobileApp.zip... (TaskId:47) 14:49:07 . 253 3>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.targets(991,5): エラー: Zip エラー: zip ファイル C:\Builds\ の作成に失敗しました1\1CMobileClient\Release\Sources\Sources\<..>\obj\Release\HelloWorldMobileApp.zip. タスク「ZipItems」の実行が完了 -- 失敗。(タスク ID:47)
ターゲット:
<Target Name="ZipProjects"
DependsOnTargets="$(ZipFilesDependsOn)"
Condition="'@(_ZipProject)' != '_'">
<Message Text="Zipping ProjectTemplates"/>
<!--
There are 2 options for using this task:
1) specifying a rootpath on each item
2) using the directory of the item as the rootpath
Note: the name of the zip file will be based on the rootpath
-->
<!--Project using RootPath-->
<ZipItems
Condition="'%(_ZipProject.RootPath)'!='' AND '@(_ZipProject)' != ''"
Files="@(_ZipProject)"
Action="New"
OutputSubPath="%(_ZipProject.OutputSubPath)"
Culture="%(_ZipProject.Culture)"
ProjectPath="$(MSBuildProjectDirectory)"
RootPath="$(MSBuildProjectDirectory)\%(_ZipProject.RootPath)"
ZipDefaultLanguage="$(VsTemplateLanguage)"
ZipLanguage="%(_ZipProject.Language)"
ZipFile="%(_ZipProject.ZipFile)">
<Output TaskParameter="ZipFile" ItemName="IntermediateZipProject"/>
<Output TaskParameter="ZipFile" ItemName="FileWrites"/>
</ZipItems>
<!--Project using Directory-->
<ZipItems
Condition="'%(_ZipProject.RootPath)'=='' AND '@(_ZipProject)' != ''"
Files="@(_ZipProject)"
Action="New"
OutputSubPath="%(_ZipProject.OutputSubPath)"
Culture="%(_ZipProject.Culture)"
ProjectPath="$(MSBuildProjectDirectory)"
RootPath="%(_ZipProject.RootDir)%(_ZipProject.Directory)"
ZipDefaultLanguage="$(VsTemplateLanguage)"
ZipLanguage="%(_ZipProject.Language)"
ZipFile="%(_ZipProject.ZipFile)">
<Output TaskParameter="ZipFile" ItemName="IntermediateZipProject"/>
<Output TaskParameter="ZipFile" ItemName="FileWrites"/>
</ZipItems>
<!--
Copy the generated templates to the deployment folder.
-->
<Copy SourceFiles="@(IntermediateZipProject)"
DestinationFiles="@(IntermediateZipProject->'$(ZipProjectOutput)\%(Language)\%(OutputSubPath)\%(Culture)\%(FileName)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
Condition="'$(DeployVSTemplates)'=='true'" />
<!--
Copy the generated templates to the output folder.
-->
<Copy SourceFiles="@(IntermediateZipProject)"
DestinationFiles="@(IntermediateZipProject->'$(OutDir)\ProjectTemplates\%(Language)\%(OutputSubPath)\%(Culture)\%(FileName)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
Condition="'$(CopyZipOutputToOutputDirectory)'=='true'" >
<Output TaskParameter="DestinationFiles" ItemName="_ZipProjectOutDir"/>
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
<Message Importance="High" Text="$(MSBuildProjectName) -> @(_ZipProjectOutDir->'%(FullPath)')" />
</Target>
<Target Name="ZipItems"
DependsOnTargets="$(ZipFilesDependsOn)"
Condition="'@(_ZipItem)' != '_'">
<Message Text="Zipping ItemTemplates"/>
<!--
There are 2 options for using this task:
1) specifying a rootpath on each item
2) using the directory of the item as the rootpath
Note: the name of the zip file will be based on the rootpath
-->
<!--Item using RootPath-->
<ZipItems
Condition="'%(_ZipItem.RootPath)'!='' AND '@(_ZipItem)' != ''"
Files="@(_ZipItem)"
Action="New"
OutputSubPath="%(_ZipItem.OutputSubPath)"
Culture="%(_ZipItem.Culture)"
ProjectPath="$(MSBuildProjectDirectory)"
RootPath="$(MSBuildProjectDirectory)\%(_ZipItem.RootPath)"
ZipDefaultLanguage="$(VsTemplateLanguage)"
ZipLanguage="%(_ZipItem.Language)"
ZipFile="%(_ZipItem.ZipFile)">
<Output TaskParameter="ZipFile" ItemName="IntermediateZipItem"/>
<Output TaskParameter="ZipFile" ItemName="FileWrites"/>
</ZipItems>
<!--Item using Directory-->
<ZipItems
Condition="'%(_ZipItem.RootPath)'=='' AND '@(_ZipItem)' != ''"
Files="@(_ZipItem)"
Action="New"
OutputSubPath="%(_ZipItem.OutputSubPath)"
Culture="%(_ZipItem.Culture)"
ProjectPath="$(MSBuildProjectDirectory)"
RootPath="%(_ZipItem.RootDir)%(_ZipItem.Directory)"
ZipDefaultLanguage="$(VsTemplateLanguage)"
ZipLanguage="%(_ZipItem.Language)"
ZipFile="%(_ZipItem.ZipFile)">
<Output TaskParameter="ZipFile" ItemName="IntermediateZipItem"/>
<Output TaskParameter="ZipFile" ItemName="FileWrites"/>
</ZipItems>
<!--
Copy the generated templates to the deployment folder.
-->
<Copy SourceFiles="@(IntermediateZipItem)"
DestinationFiles="@(IntermediateZipItem->'$(ZipItemOutput)\%(Language)\%(OutputSubPath)\%(Culture)\%(FileName)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
Condition="'$(DeployVSTemplates)'=='true'" />
<!--
Copy the generated templates to the output folder.
-->
<Copy SourceFiles="@(IntermediateZipItem)"
DestinationFiles="@(IntermediateZipItem->'$(OutDir)\ItemTemplates\%(Language)\%(OutputSubPath)\%(Culture)\%(FileName)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
Condition="'$(CopyZipOutputToOutputDirectory)'=='true'" >
<Output TaskParameter="DestinationFiles" ItemName="_ZipItemOutDir"/>
<Output TaskParameter="DestinationFiles" ItemName="FileWrites"/>
</Copy>
<Message Importance="High" Text="$(MSBuildProjectName) -> @(_ZipItemOutDir->'%(FullPath)')" />
</Target>