Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 向ASP.NET应用程序添加Docker支持_Asp.net Mvc_Docker - Fatal编程技术网

Asp.net mvc 向ASP.NET应用程序添加Docker支持

Asp.net mvc 向ASP.NET应用程序添加Docker支持,asp.net-mvc,docker,Asp.net Mvc,Docker,我正在为一个运行良好的asp应用程序添加Docker支持。我希望通过点击“添加Docker支持”来利用VS2017 Docker的特性和功能,看看“F5体验”会是什么样子。幸运的是,我马上就被有点神秘的错误所困扰 1>------ Build started: Project: docker-compose, Configuration: Release Any CPU ------ 1>C:\Program Files (x86)\Microsoft Visual Studio\2

我正在为一个运行良好的asp应用程序添加Docker支持。我希望通过点击“添加Docker支持”来利用VS2017 Docker的特性和功能,看看“F5体验”会是什么样子。幸运的是,我马上就被有点神秘的错误所困扰

1>------ Build started: Project: docker-compose, Configuration: Release Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018: The "ResolveProjectInputAndOutput" task failed unexpectedly.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018: System.ArgumentNullException: Value cannot be null.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018: Parameter name: path1
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018:    at System.IO.Path.Combine(String path1, String path2)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018:    at Microsoft.Docker.BuildTasks.ResolveProjectInputAndOutput.ResolveRelativeOutputAssemblyPath(TargetOS targetOS, TargetFramework targetFramework, DockerDevelopmentMode developmentMode)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018:    at Microsoft.Docker.BuildTasks.ResolveProjectInputAndOutput.Execute()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
1>----构建已启动:项目:docker compose,配置:释放任何CPU------
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:“ResolveProjectInputOutput”任务意外失败。
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:System.ArgumentNullException:值不能为空。
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:参数名称:path1
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:at System.IO.Path.Combine(字符串路径1,字符串路径2)
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:位于Microsoft.Docker.BuildTasks.ResolveProjectInputOutput.ResolveRelativeOutputAssemblyPath(TargetOS-TargetOS,TargetFramework-TargetFramework,DockerDevelopmentMode-developmentMode-developmentMode)
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:位于Microsoft.Docker.BuildTasks.ResolveProjectInputOutput.Execute()
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:位于Microsoft.build.BackEnd.TaskExecutionHost.Microsoft.build.BackEnd.ItaskeExecutionHost.Execute()
1> C:\Program Files(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Sdk\Microsoft.Docker.Sdk\build\Microsoft.Docker.targets(80,5):错误MSB4018:位于Microsoft.build.BackEnd.TaskBuilder.d_u26.MoveNext()
我翻到了有问题的文件,这里有一个特别的问题:

<Target Name="DockerResolveProjectInputAndOutput">
<ResolveProjectInputAndOutput ProjectDirectory="$(MSBuildProjectDirectory)" DockerComposeProjectPath="$(DockerComposeProjectPath)" OutputPath="$(OutputPath)" References="@(Reference)" TargetFileName="$(TargetFileName)" TargetPath="$(TargetPath)" />
</Target>

所以我在proj文件中找到了一个峰值,看看是否有任何Docker特有的问题可以找到。我在这里只找到一个参考:

<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
。\docker-compose.dcproj

似乎有些配置没有正确完成,这是导致此问题的原因,但还没有很好地弄清楚它会是什么/在哪里

在我的例子中,问题是:我们有一系列配置(开发、测试、测试、生产、调试和发布)。但是,在我试图添加容器支持的应用程序的项目文件中,我们没有用于调试的
部分。该部分是
输出路径的位置

奇怪的是,我甚至在
Dev
config中运行时也出现了错误

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Dev\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Prefer32Bit>false</Prefer32Bit>
  </PropertyGroup>

任意CPU
真的
满的
假的
bin\Dev\
调试;痕迹
促使
4.
假的

此项目有一个“升级过程”来添加docker支持。也许在“步骤”中你可以找到一些神奇的价值。grandaCoder,谢谢你的提示,有趣的是,这正是我开始使用的基线,因此没有足够的细节进行故障排除。它看起来更像是一个点击式的东西,而不是它原来的样子#难道你不想知道这件事的真相吗?你能回答你自己的问题吗?这对我真的很有帮助:)