Question

Je vais avoir un problème mise en place d'un de mes projets TeamCity (v4.0), en particulier en ce qui concerne l'utilisation Initialiseurs d'objets.

Le projet se construit bien normalement, mais il semblerait que TeamCity transforme le fichier de construction en quelque chose qu'il aime (une mutation MSBuild) et en ce qui concerne la compilation du code pour une partie de la solution, il se cabre quand il voit un objet Initializer .

Plus précisément, les erreurs sont:

[11:16:21]: ErrorView.xaml.cs(22, 187): error CS1026: ) expected
[11:16:21]: ErrorView.xaml.cs(22, 208): error CS0116: A namespace does not directly contain members such as fields or methods
[11:16:21]: ErrorView.xaml.cs(27, 16): error CS1518: Expected class, delegate, enum, interface, or struct
[11:16:21]: ErrorView.xaml.cs(35, 16): error CS1518: Expected class, delegate, enum, interface, or struct
[11:16:21]: ErrorView.xaml.cs(46, 91): error CS1031: Type expected
[11:16:21]: ErrorView.xaml.cs(46, 119): error CS0116: A namespace does not directly contain members such as fields or methods
[11:16:21]: ErrorView.xaml.cs(48, 17): error CS1022: Type or namespace definition, or end-of-file expected

Quand je regarde dans cet autre, il semblerait que les liens de problème aux transformations du fichier de construction au format TeamCity à l'aide du SCC à partir du répertoire cadre v2.0.

Est-il possible de compiler le code en utilisant initialiseurs d'objets (caractéristique .NET 3.0) avec le compilateur .NET 2.0 (je suppose pas, bien que je puisse manquer quelque chose), et sinon, personne ne sait un moyen de forcer pour utiliser le compilateur 3.0 (le cas échéant) ou le compilateur 3,5?

Pour les personnes intéressées, la commande CSC est en cours d'exécution:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE 
/reference:..\..\..\build\blah.Logging.dll /reference:..\..\..\build\blah.Presentation.Interfaces.dll 
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.VisualBasic.dll /reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationCore.dll" 
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.dll" 
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationFramework.Luna.dll" 
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Design.dll 
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll 
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll 
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll 
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\UIAutomationProvider.dll"
/reference:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\WindowsBase.dll" /debug+ /debug:full /filealign:512 
/keyfile:..\..\..\resources\blah.snk /optimize- /out:obj\Debug\blah.dll 
/resource:obj\Debug\blah.UserInterface.Properties.Resources.resources
/resource:obj\Debug\blah.UserInterface.blah.exe.license /target:library 
/win32icon:blah.ico SignalStrengthIndicator.xaml.cs TrayNotifier.xaml.cs ConnectedView.xaml.cs ConnectionProgressView.xaml.cs NetworkPasswordView.xaml.cs 
TrayProgress.xaml.cs NetworkConnectionView.xaml.cs ClassFiles\NetworkTypeConverter.cs 
ClassFiles\SecurityImageConverter.cs ClassFiles\SecurityTooltipConverter.cs 
ClassFiles\SignalStrengthTooltipConverter.cs ClassFiles\SignalVisibilityConverter.cs 
ClassFiles\SynchronizedObservableCollection.cs ConnectionOption.xaml.cs 
DisconnectionProgressView.xaml.cs ErrorView.xaml.cs ..\..\..\config\assemblyversion.cs 
Properties\Resources.Designer.cs Properties\Settings.Designer.cs

Merci!

Mise à jour: J'ai partiellement (lu: Je ne suis pas heureux avec elle) résolu le problème en changeant le coureur de construction de Nant pour commander runner - ce juste d'exécuter le fichier de construction Nant comme prévu sans aucune manipulation, bien que la niveau de rétroaction est différente. Toutes les autres suggestions seraient appréciées.

Était-ce utile?

La solution

Utilisez-vous le coureur de construction de sln2005? Qui utilisera le 2.0 csc. Vérifiez votre configuration de construction et changer pour le coureur de sln2008 (voir http: / /www.jetbrains.net/confluence/display/TCD4/3.Build+Runners ). Cela devrait utiliser le compilateur 3.5.

Si vous utilisez le coureur MSBuild http://www.jetbrains.net/ confluence / affichage / TCD4 / MSBuild vérifiez que vous avez défini le numéro de version à 3.5 sur la page de configuration.

Edit: après vérification sur NAnt Voir http://www.jetbrains.net/confluence/display/TCD4/NAnt_

où il est dit: « Par défaut, NAnt tâche MSBuild utilise MSBuild 2.0 (de Microsoft .NET Framework 2.0), mais vous pouvez utiliser MSBuild 3.5 (de Microsoft .NET Framework 3.5) si vous ajoutez la propriété teamcity_dotnet_use_msbuild_v35 avec la valeur de . fidèle à votre tâche msbuild dans le script NAnt Par exemple: "

<msbuild project="SimpleEcho.v35.proj">
   <!-- this property enables MSBuild 3.5 -->
   <property name="teamcity_dotnet_use_msbuild_v35" value="true"/>
   ...
 </msbuild>

Autres conseils

pour le script NAnt on peut définir simplement la propriété teamcity_dotnet_use_msbuild_v35 du système dans les paramètres de configuration de build ( http://www.jetbrains.net/confluence/display/TCD4/6.Properties+and+environment+variables ) pour le faire tourner msbuild 3.5.

D'autre part, si le cadre cible NAnt est défini sur Net-3.5 (uniquement pour NAnt 0.86 beta 1) msbuild doit être pris à partir du dossier .NET 3.5.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top