Dotnet watcher - 路径中的非法字符 - 什么可能导致此错误?
Dotnet watcher - Illegal characters in path -- what could cause this error?
谁能帮助我们理解为什么 dotnet watch 会导致我们的应用程序崩溃?
我正在使用 dotnet new mvc 和 yo aspnetcore-spa 在 visual studio 代码中创建应用程序。两者都工作正常,直到我尝试使用 https://github.com/aspnet/DotNetTools/tree/dev/src/Microsoft.DotNet.Watcher.Tools 处的示例添加对 DotNet Watcher 工具的引用以在 csproj 文件中插入引用:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
</ItemGroup>
加入csproj和dotnet restore后,应用报错失败,不可恢复。必须删除,我必须从头开始。
完整的 csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>
netcoreapp1.1
</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
</ItemGroup>
</Project>
抛出的错误如下所示,无论我们在磁盘上的哪个位置创建应用程序或将其命名为什么,都会发生。
- C:\Program Files\dotnet\sdk.0.1\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\Microsoft.NET.Sdk.Publish.targets (90,5):错误 MSB4184:表达式“[System.IO.Path]::GetFullPath(C:\test\obj\Debug\ [C:\test\test.csproj]
- C:\Program Files\dotnet\sdk.0.1\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\Microsoft.NET.Sdk.Publish.targets (90,5): 错误 MSB4184: netcoreapp1.1 [C:\test\test.csproj]
- C:\Program Files\dotnet\sdk.0.1\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\Microsoft.NET.Sdk.Publish.targets (90,5): 错误 MSB4184: \PubTmp)" 无法计算。路径中有非法字符。参数名称:路径 [C:\test\test.csproj]
我们的环境是:
- .NET 命令行工具 (1.0.1)
Microsoft .NET Core 共享框架
主机版本:1.1.0
- 构建:928f77c4bc3f49d892459992fb6e1d5542cb5e86
- Visual Studio 代码 v 1.10.2
- Windows 10
问题已解决。名为 "XML Formatter" 的扩展正在重写保存时的 csproj 文件并添加硬 returns 和选项卡。删除此扩展,将 csproj 恢复到其原始状态,重新添加 DotNetCliToolReference 代码块并通过 dotnet restore 重建解决了这个问题。
谁能帮助我们理解为什么 dotnet watch 会导致我们的应用程序崩溃?
我正在使用 dotnet new mvc 和 yo aspnetcore-spa 在 visual studio 代码中创建应用程序。两者都工作正常,直到我尝试使用 https://github.com/aspnet/DotNetTools/tree/dev/src/Microsoft.DotNet.Watcher.Tools 处的示例添加对 DotNet Watcher 工具的引用以在 csproj 文件中插入引用:
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
</ItemGroup>
加入csproj和dotnet restore后,应用报错失败,不可恢复。必须删除,我必须从头开始。
完整的 csproj 文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>
netcoreapp1.1
</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.1.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
</ItemGroup>
</Project>
抛出的错误如下所示,无论我们在磁盘上的哪个位置创建应用程序或将其命名为什么,都会发生。
- C:\Program Files\dotnet\sdk.0.1\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\Microsoft.NET.Sdk.Publish.targets (90,5):错误 MSB4184:表达式“[System.IO.Path]::GetFullPath(C:\test\obj\Debug\ [C:\test\test.csproj]
- C:\Program Files\dotnet\sdk.0.1\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\Microsoft.NET.Sdk.Publish.targets (90,5): 错误 MSB4184: netcoreapp1.1 [C:\test\test.csproj]
- C:\Program Files\dotnet\sdk.0.1\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\Microsoft.NET.Sdk.Publish.targets (90,5): 错误 MSB4184: \PubTmp)" 无法计算。路径中有非法字符。参数名称:路径 [C:\test\test.csproj]
我们的环境是:
- .NET 命令行工具 (1.0.1)
Microsoft .NET Core 共享框架
主机版本:1.1.0
- 构建:928f77c4bc3f49d892459992fb6e1d5542cb5e86
- Visual Studio 代码 v 1.10.2
- Windows 10
问题已解决。名为 "XML Formatter" 的扩展正在重写保存时的 csproj 文件并添加硬 returns 和选项卡。删除此扩展,将 csproj 恢复到其原始状态,重新添加 DotNetCliToolReference 代码块并通过 dotnet restore 重建解决了这个问题。