visual varios studio solucion proyectos proyecto muestra errores ejecutar correctamente compilar como cargaron abrir c# msbuild

c# - varios - El proyecto se compila bien con Visual Studio pero falla desde la línea de comando



uno o varios proyectos de la solucion no se cargaron correctamente visual studio (3)

$ se puede convertir a string.format.

var CutOffTextFragment = deadLineTime.Deadline.Minute == 0 ? string.Format("{0:htt}",deadLineTime.Deadline) : string.Format("{0:h:mmtt}", deadLineTime.Deadline);

Tengo una solución que se compila bien cuando se ejecuta en Visual Studio 2015, pero cuando corro desde la línea de comando me encuentro con el error

error CS1056: carácter inesperado ''$'' en esta línea

var CutOffTextFragment = deadLineTime.Deadline.Minute == 0 ? $"{deadLineTime.Deadline:htt}" : $"{deadLineTime.Deadline:h:mmtt}"

deadLineTime.Deadline es un objeto DateTime, el código devolverá XAM / PM o X: XXAM / PM

Creo que esto ocurre porque el script de compilación no usa C # 6. En este momento, este script no se puede cambiar para usar c # 6

Si este es el caso, ¿alguien puede ayudarme a depreciar el código para que funcione con C # 5?


$"{deadLineTime.Deadline:htt}"

es un azúcar sintaxis para

string.Format("{0:htt}", deadline.Deadline);

lo mismo vale para

$"{deadLineTime.Deadline:h:mmtt}"

como

string.Format("{0:h:mmtt}", deadline.Deadline);

intenta reemplazarlos


Esa característica es un azúcar sintáctico para C # 6, intenta instalar la última versión del marco 4.6.2 https://www.microsoft.com/en-us/download/details.aspx?id=53345

A continuación, vaya a las propiedades de su proyecto y cambie en la opción Aplicación en el marco de destino para que apunte a la última. No necesita cambiar su código para reemplazar la cadena de interpolación con una cadena. Formatee el método para solucionarlo.

Si sigues recibiendo este error, es porque el compilador que está ejecutando tu compilación no es la última versión de C #, intenta agregar Microsoft.Net.Compilers, desde Nuget y vuelve a compilar, eso debería resolver el problema. Si quiere evitar instalar este paquete, intente abrir su .csproj y eche un vistazo a ToolsVersion que debería estar apuntando a la versión 12, luego cámbielo a 14, pero asegúrese de haber instalado la última versión de MSBuild. de https://www.microsoft.com/en-us/download/details.aspx?id=48159 o vaya a C: / Archivos de programa (x86) / MSBuild / 14.0 / Bin, allí debe tener esta carpeta con el compilador csc.exe. Si aún así eso no resuelve el problema, intente seguir estos pasos https://msdn.microsoft.com/en-us/library/bb383985.aspx . En mi experiencia, solo obtener el paquete de Nuget resolvió el problema. Espero que esto ayude