【问题标题】:DotNetCore 1.1 application compilation error: CS2007: Unrecognized option: '-' Web C:\..Microsoft.DotNet.ComDotNetCore 1.1 应用程序编译错误:CS2007: Unrecognized option: '-' Web C:\..Microsoft.DotNet.Com
【发布时间】:2017-02-22 17:40:07
【问题描述】:

我在尝试编译 1.1 应用程序时遇到编译错误。我正在将此应用程序从 Rc1 转换为 1.1,对项目文件进行了必要的更改,包恢复没有错误,但在编译时出现此错误。

该解决方案还有其他 Web 项目,引用相同的公共类库,都编译没有任何错误...

在 vs2015(on win10) 中,我安装了这些包:

DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe

DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x64.exe

------ Rebuild All started: Project: MyCommon.Model, Configuration: Debug Any CPU ------
  C:\Program Files\dotnet\dotnet.exe build "c:\work\proj\Trunk\Gsb\MyCommon.Model" --configuration Debug --no-dependencies --no-incremental
  Project MyCommon.Model (.NETStandard,Version=v1.6) will be compiled because project is not safe for incremental compilation. Use --build-profile flag for more information.
  Compiling MyCommon.Model for .NETStandard,Version=v1.6
  Compilation succeeded.
      0 Warning(s)
      0 Error(s)
  Time elapsed 00:00:02.1608612
   (The compilation time can be improved. Run "dotnet build --build-profile" for more information)
------ Rebuild All started: Project: MyCommon.Utilities, Configuration: Debug Any CPU ------
  C:\Program Files\dotnet\dotnet.exe build "c:\work\proj\Trunk\Gsb\MyCommon.Utilities" --configuration Debug --no-dependencies --no-incremental
  Project MyCommon.Utilities (.NETStandard,Version=v1.6) will be compiled because project is not safe for incremental compilation. Use --build-profile flag for more information.
  Compiling MyCommon.Utilities for .NETStandard,Version=v1.6
  Compilation succeeded.
      0 Warning(s)
      0 Error(s)
  Time elapsed 00:00:02.0359443
   (The compilation time can be improved. Run "dotnet build --build-profile" for more information)
------ Rebuild All started: Project: Gsbr.Web, Configuration: Debug Any CPU ------
  C:\Program Files\dotnet\dotnet.exe build "c:\work\proj\Trunk\Gsb\Gsbr.Web" --configuration Debug --no-dependencies --no-incremental
  Project Gsbr.Web (.NETCoreApp,Version=v1.1) will be compiled because project is not safe for incremental compilation. Use --build-profile flag for more information.
  Compiling Gsbr.Web for .NETCoreApp,Version=v1.1
  C:\Program Files\dotnet\dotnet.exe compile-csc @c:\work\proj\Trunk\Gsb\Gsbr.Web\obj\Debug\netcoreapp1.1\dotnet-compile.rsp returned Exit Code 1
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets(262,5): error : c:\work\proj\Trunk\Gsb\Gsbr.Web\error CS2007: Unrecognized option: '-'
  Compilation failed.
      0 Warning(s)
      1 Error(s)
  Time elapsed 00:00:33.7698291
========== Rebuild All: 2 succeeded, 1 failed, 0 skipped ==========

project.json 是这样的:

{
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.1.0-preview4-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.AspNetCore.Authorization": "1.1.0",
    "Microsoft.AspNetCore.Authentication.Cookies": "1.1.0"  ,  
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.DependencyInjection": "1.1.0",    
    "MyCommon.Model": "1.0.0-*",
    "MyCommon.Utilities": "1.0.0-*",
    "Microsoft.AspNetCore.Http": "1.1.0",
    "Newtonsoft.Json": "9.0.1",
    "Telerik.UI.for.AspNet.Core": "2017.1.118",
    "Microsoft.AspNetCore.Session": "1.1.0",
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.0",
    "System.Net.Http": "4.3.0"
  },


  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "warningsAsErrors": true,
    "preserveCompilationContext": true,
    "embed": "Views/**",
    "compile": {
      "exclude": [ "wwwroot", "node_modules" ] 
    }
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "Config/*.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

project.jsonStartup.cs 没有显示任何错误。

我做错了什么?什么可能导致错误?

【问题讨论】:

  • 如果你从命令行运行dotnet build,你会得到同样的错误吗? dotnet --version 的输出是什么?
  • 是的,我在运行 dotnet build 时遇到了同样的错误
  • >dotnet Microsoft .NET Core 共享框架主机版本:1.1.0 内部版本:928f77c4bc3f49d892459992fb6e1d5542cb5e86

标签: c# visual-studio-2015 .net-core


【解决方案1】:

在不知不觉中花了几个小时后,我终于发现问题是由一个带有“-”的 .cshtml 文件名引起的!!!重命名该文件后,编译器开始工作,我终于可以编译项目了。文件名中的连字符导致编译器失败。文件名是由 Visual Studio 在复制另一个文件时创建的(文件名 - copy.cshtml) 希望这对其他人有帮助。

【讨论】:

  • 我刚刚在 dotnet 核心可执行文件中嵌入 .sql 脚本时遇到了同样的问题 - 是由包含空格和“-”字符的文件名 - “data-01. sql”很好,“data - 01.sql”是个问题!感谢您为我指明正确的方向!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多