web-dev-qa-db-fra.com

CSC: erreur CS0041: erreur inattendue lors de l'écriture des informations de débogage - "L'opération n'est pas prise en charge sur cette plate-forme".

Je viens de télécharger Visual Studio Professional pour Mac et je n'arrive pas à construire quoi que ce soit car je reçois toujours la même erreur:

/Library/Frameworks/Mono.framework/Versions/4.8.0/lib/mono/xbuild/14.0/bin/Microsoft.CSharp.targets (CoreCompile target) ->

CSC: error CS0041: Unexpected error writing debug information -- 'Operation is not supported on this platform.'

 19 Warning(s)
 1 Error(s)

Je ne sais pas quoi changer dans mon projet pour que les choses soient compilées. 

11
Slee

J'ai pu contourner ce problème de deux manières:

  1. HACKEn supprimant les symboles de débogage de la construction (dans les fenêtres du VS: Propriétés du projet -> Onglet Construire -> bouton Avancé -> changer le menu déroulant "Informations de débogage" sur "aucun" - ne sachant pas quel équivalent est dans le VS pour Mac/Xamarin Studio) Je l’ai fait pour toutes les configurations du (des) projet (s) concerné (s). Tiré à macOS env, la construction réussit maintenant. Aucune information de débogage bien sûr, mais cela fonctionne sans casser aucune dép.

  2. NON-HACK La cause principale est l'utilisation du compilateur/des outils Roslyn pour les projets Web ASP.NET. Cet outil génère des fichiers PDB au lieu de fichiers MDB. La construction échoue lorsque vous tentez de générer des fichiers PDB sur la plate-forme macOS. "plate-forme non prise en charge".) Connaissant la cause première, nous pouvons également supprimer les packages de nuget suivants des projets affectés:

    <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.0" targetFramework="net45" />
    <package id="Microsoft.Net.Compilers" version="1.0.0" targetFramework="net45" developmentDependency="true" />
    

On ignore ce qui est sacrifié par la suppression de ces deux packages. Cela me permet de construire les projets affectés avec les informations de débogage incluses. Les projets concernés ne contenaient que des noeuds finaux webapi, et n'utilisaient ni moteur MVC ni Razor. Ce serait bien d'entendre les expériences des autres s'ils avaient des problèmes en amont de ce changement.

HTH

14
Shaun Wilson

C'est un bug qui sera corrigé sous peu. En attendant, vous pouvez éditer votre fichier csproj pour ajouter

<DebugType Condition="'$(OS)' != 'Windows_NT'">portable</DebugType>

après la ligne avec <DebugType>full</DebugType> ou <DebugType>pdbonly</DebugType>

En gros, nous voulons que la propriété DebugType sur Mac soit portable, prise en charge par le csc.exe de Roslyn sur les plateformes autres que Windows, au lieu de pdb.

5
radical

Pour résoudre ce problème, vous devez faire:

  1. Sélectionnez un projet

  2. Clic droit et sélection des options

  3. Sélectionnez l'onglet Construire -> Compilateur
  4. Informations de débogage -> Aucun

Il a résolu cette erreur mais m'en a donné une autre

"System.IO.FileNotFoundException Impossible de trouver le fichier" /Users/.../.../bin\roslyn\csc.exe "

3
Icet

J'espère ne pas arriver trop tard, j'ai résolu les problèmes suivants:

  1. Faites un clic droit dans la solution et sélectionnez "Options",

  2. Sélectionnez l'onglet Construire -> Configurations,

  3. Dans "Configuration A." sélectionnez "Debug" et désactivez toutes les marques de build et cliquez sur accepter,

  4. Nettoyer, reconstruire et exécuter le projet.

J'espère que ça aide.

0
Alan Uscanga