これはよくある問題のようで、いくつかのスタック オーバーフローの質問を見つけましたが、それらはすべて MSBuild に関連しているようです。
Visual Studio で asp.net 5 rc1 プロジェクトを右クリックし、ファイル システム ベースの発行プロファイルを呼び出して、発行しようとしています。
その設定は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<CompileSource>False</CompileSource>
<_DefaultDNXVersion>dnx-clr-win-x86.1.0.0-rc1-final</_DefaultDNXVersion>
<UsePowerShell>True</UsePowerShell>
<IISCommand>web</IISCommand>
<WebRoot>wwwroot</WebRoot>
<WwwRootOut>wwwroot</WwwRootOut>
<IncludeSymbols>False</IncludeSymbols>
<Native>False</Native>
<IgnoreDNXRuntime>False</IgnoreDNXRuntime>
<publishUrl>C:\Source\CCollections\artifacts\bin\CCollections.Client.Web.Angular\Release\PublishOutput</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
</Project>
これにより、次の出力が得られます。
C:\Source\CCollections\src\CCollections.Client.Web.Angular>C:\Users\Christopher\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-final\bin\dnu.cmd publish "C:\Source\CCollections\src\CCollections.Client.Web.Angular" --out "C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96" --configuration リリース--runtime dnx-clr-win-x86.1.0.0-rc1-final --wwwroot "wwwroot" --wwwroot-out "wwwroot" --iis-command "web" Microsoft .NET 開発ユーティリティ Clr-x86-1.0.0-rc1-16202 project.json でスクリプト 'prepublish' を実行しています npm WARN package.json ASP.NET@0.0.0 説明なし npm WARN package.json ASP.NET@0.0.0 リポジトリ フィールドがありません。 npm WARN package.json ASP.NET@0.0.0 README データなし npm WARN package.json ASP.NET@0.0.0 ライセンス フィールドがありません。 npm WARN 満たされていない依存関係 C:\Source\CCollections\src\CCollections.Client.Web.Angular\node_modules\gulp-cssmin\node_modules\gulp-util には minimist@'^0.2.0' が必要ですが、読み込まれます npm WARN 満たされていない依存関係 C:\Source\CCollections\src\CCollections.Client.Web.Angular\node_modules\gulp-cssmin\node_modules\minimist, バージョン1.1.1であるnpm WARNの満たされていない依存関係 npm WARN 満たされていない依存関係 C:\Source\CCollections\src\CCollections.Client.Web.Angular\node_modules\gulp-cssmin\node_modules\through2 には、readable-stream@'~1.0.17' が必要ですが、読み込まれます npm WARN 満たされていない依存関係 C:\Source\CCollections\src\CCollections.Client.Web.Angular\node_modules\gulp-cssmin\node_modules\readable-stream, バージョン 1.1.13 である npm WARN 満たされていない依存関係 [12:15:37] gulpfile C:\Source\CCollections\src\CCollections.Client.Web.Angular\gulpfile.js の使用 [12:15:37] 「clean:js」を開始しています... [12:15:37] 「clean:css」を開始しています... [12:15:37] 8.17 ミリ秒後に「clean:js」を完了 [12:15:37] 7.58 ミリ秒後に「clean:css」を完了 [12:15:37] 「クリーン」を開始しています... [12:15:37] 6.63 μs 後に「クリーン」を完了 [12:15:38] gulpfile C:\Source\CCollections\src\CCollections.Client.Web.Angular\gulpfile.js の使用 [12:15:38] 「min:js」を開始しています... [12:15:38] 14 ミリ秒後に「min:js」を完了 [12:15:38] 「min:css」を開始しています... [12:15:38] 3.02 ミリ秒後に「min:css」が完了しました [12:15:38] 「分」を開始しています... [12:15:38] 6.03 μs 後に「分」を終了 [12:15:40] gulpfile C:\Source\CCollections\src\CCollections.Client.Web.Angular\gulpfile.js の使用 [12:15:40] 「libcopy」を開始しています... [12:15:40] 19 ミリ秒後に「libcopy」が完了 出力パス C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96 へのコピー パッケージ依存関係 Microsoft.AspNet.DataProtection.Abstractions 1.0.0-rc1-final の使用 パッケージ依存関係 Microsoft.CodeAnalysis.CSharp 1.1.0-rc1-20151109-01 の使用 パッケージ依存関係 Microsoft.AspNet.Identity 3.0.0-rc1-final の使用 パッケージ依存関係 Microsoft.Extensions.Configuration.CommandLine 1.0.0-rc1-final の使用 パッケージ依存関係 Microsoft.Extensions.Logging.Console 1.0.0-rc1-final の使用 パッケージの依存関係 System.Runtime.InteropServices 4.0.0 の使用 パッケージの依存関係 System.Diagnostics.Debug 4.0.0 の使用 パッケージ依存関係 Microsoft.AspNet.Mvc.Razor.Host 6.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Mvc.Razor.Host\6.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Mvc.Razor.Host\6.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\System.Runtime.InteropServices\4.0.0 パッケージの依存関係 EntityFramework.Commands 7.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\EntityFramework.Commands\7.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\EntityFramework.Commands\7.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.CodeAnalysis.CSharp\1.1.0-rc1-20151109-01 ソース C:\Users\Christopher\.dnx\packages\Microsoft.Extensions.Configuration.CommandLine\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Configuration.CommandLine\1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.DataProtection.Abstractions\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.DataProtection.Abstractions\1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\System.Diagnostics.Debug\4.0.0 ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\System.Diagnostics.Debug\4.0.0 パッケージ依存関係 Microsoft.AspNet.Mvc.TagHelpers 6.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Mvc.TagHelpers\6.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Mvc.TagHelpers\6.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.CodeAnalysis.CSharp\1.1.0-rc1-20151109-01 ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\System.Runtime.InteropServices\4.0.0 パッケージ依存関係の使用 Microsoft.Extensions.Configuration.EnvironmentVariables 1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.Extensions.Configuration.EnvironmentVariables\1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.Extensions.Logging.Console\1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Identity\3.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Identity\3.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Configuration.EnvironmentVariables\1.0.0-rc1-final パッケージ依存関係 Microsoft.AspNet.Diagnostics 1.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Diagnostics\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Diagnostics\1.0.0-rc1-final パッケージの依存関係 EntityFramework.Core 7.0.0-rc1-final の使用 パッケージ依存関係 Microsoft.AspNet.Mvc.ViewFeatures 6.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Mvc.ViewFeatures\6.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Mvc.ViewFeatures\6.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Logging.Console\1.0.0-rc1-final パッケージ依存関係 Microsoft.Dnx.Compilation.Abstractions 1.0.0-rc1-final の使用 パッケージ依存関係の使用 Microsoft.Extensions.Configuration.FileExtensions 1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.Extensions.Configuration.FileExtensions\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Configuration.FileExtensions\1.0.0-rc1-final パッケージ依存関係 Microsoft.AspNet.Identity.EntityFramework 3.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Identity.EntityFramework\3.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\EntityFramework.Core\7.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\EntityFramework.Core\7.0.0-rc1-final パッケージの依存関係 System.Diagnostics.DiagnosticSource 4.0.0-beta-23516 の使用 パッケージ依存関係 Microsoft.Extensions.Logging.Debug 1.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.Extensions.Logging.Debug\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Logging.Debug\1.0.0-rc1-final パッケージ依存関係 Microsoft.AspNet.Diagnostics.Abstractions 1.0.0-rc1-final の使用 ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.Diagnostics.Abstractions\1.0.0-rc1-final パッケージ依存関係の使用 Microsoft.AspNet.PageExecutionInstrumentation.Interfaces 1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.AspNet.PageExecutionInstrumentation.Interfaces\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.PageExecutionInstrumentation.Interfaces\1.0.0-rc1-final パッケージ依存関係の使用 Microsoft.Extensions.Configuration.FileProviderExtensions 1.0.0-rc1-final ソース C:\Users\Christopher\.dnx\packages\Microsoft.Dnx.Compilation.Abstractions\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Dnx.Compilation.Abstractions\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Identity.EntityFramework\3.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.AspNet.Diagnostics.Abstractions\1.0.0-rc1-final パッケージの依存関係 System.Text.Encoding 4.0.0 の使用 ソース C:\Users\Christopher\.dnx\packages\System.Text.Encoding\4.0.0 ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\System.Text.Encoding\4.0.0 ソース C:\Users\Christopher\.dnx\packages\System.Diagnostics.DiagnosticSource\4.0.0-beta-23516 ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\System.Diagnostics.DiagnosticSource\4.0.0-beta-23516 ソース C:\Users\Christopher\.dnx\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final ターゲット C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final エラー: 指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は 260 文字未満、ディレクトリ名は 248 文字未満である必要があります。 エラー: 指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は 260 文字未満、ディレクトリ名は 248 文字未満である必要があります。 C:\Source\CCollections\src\CCollections.Client.Web.Angular>
私の問題はここにあると思います:C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\
C:\Temp のような短いパスを使用する必要があります。
他のスタックオーバーフローの回答でいくつかの提案を試しました。
プロファイルへの追加<AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath>
は役に立たないようです。
追加<IntermediateOutputPath>..\Temp</IntermediateOutputPath>
もうまくいかないようです。
これらの設定は MSBuild によって取得されますが、dnu パブリッシュでは取得されないためだと思います。
では、appdata ディレクトリではなく C:\Temp にパッケージをビルドするように dnu publish に指示するにはどうすればよいでしょうか?
更新: 犯人を見つける: パスの制限を超えたファイルは上記のログにはなく、成功したコピーのみがログに記録されていると思います。この仮説を検証するには:
- dnu publish を手動で実行して c:\temp にデプロイしました
- ファイルを c:\temp から C:\Users\Christopher\AppData\Local\Temp\PublishTemp にコピーしました
すべてのファイルを再帰的に繰り返すスクリプトを実行し、248 文字を超えるパスの長さを出力しました。結果:
C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final\lib\net451\Microsoft.Extensions .Configuration.FileProviderExtensions.dll
ファイル パスの長さ: 249 文字
C:\Users\Christopher\AppData\Local\Temp\PublishTemp\CCollections.Client.Web.Angular96\approot\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final\lib\netcore50\Microsoft.Extensions .Configuration.FileProviderExtensions.dll
ファイル パスの長さ: 252 文字
最大のフォルダは 191 文字で、ファイルは 252 文字なので、それぞれ 240 文字と 260 文字を超えません。
これらすべてに関係なく、プロファイルの一時ディレクトリの代わりに、Visual Studio 2015 に一時ディレクトリとして "C:\temp" を使用するように指示するにはどうすればよいですか?