15

これはよくある問題のようで、いくつかのスタック オーバーフローの質問を見つけましたが、それらはすべて 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 に指示するにはどうすればよいでしょうか?

更新: 犯人を見つける: パスの制限を超えたファイルは上記のログにはなく、成功したコピーのみがログに記録されていると思います。この仮説を検証するには:

  1. dnu publish を手動で実行して c:\temp にデプロイしました
  2. ファイルを c:\temp から C:\Users\Christopher\AppData\Local\Temp\PublishTemp にコピーしました
  3. すべてのファイルを再帰的に繰り返すスクリプトを実行し、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" を使用するように指示するにはどうすればよいですか?

4

3 に答える 3

34

一時出力を短いパス名のパスに変更します。

  1. テキスト エディターからターゲット.pubxmlを開きます。.\Properties\PublishProfiles
  2. PublishOutputPathNoTrailingSlashunderと呼ばれる要素を変更または追加し PropertyGroup、値を目的のパスに設定します。
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <PublishOutputPathNoTrailingSlash>C:\Temp\Publish</PublishOutputPathNoTrailingSlash>
  </PropertyGroup>
</Project>
于 2015-11-20T20:41:57.380 に答える
2

project.json の新しい asp.net mvc 6 の場合

"exclude": [ "wwwroot", "node_modules" ],`
"publishExclude": [ "**.user",  "**.vspscc" ]
于 2016-04-15T16:53:45.563 に答える
0

これがあなたが探しているものだと思います:

[Web の公開] ダイアログに移動したら、[接続] タブ内の [ターゲットの場所] を変更する必要があります (四角形のボックスを [...] で押します)。次に、C:\Temp とファイルを参照します。そこに行く...

このダイアログでは、C:\Temp をオンザフライで作成することはできないため、まだ作成していない場合は、事前に作成する必要があります。

これでうまくいくことを願っています。

于 2015-11-20T19:56:39.660 に答える