Domanda

Sto avendo una creazione di uno dei miei progetti a TeamCity (v4.0) problema, in particolare quando si tratta di utilizzare Inizializzatori oggetto.

Il progetto si basa bene normalmente, tuttavia sembrerebbe che TeamCity trasforma il file di generazione in qualcosa che gli piace (alcuni MSBuild mutazione) e quando si tratta di compilare il codice per una parte della soluzione si tira indietro quando si vede un oggetto Initializer .

In particolare gli errori sono:

[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

Quando guardo nei questo ulteriore sembrerebbe i legami problema alla schiena per la trasformazione del file di configurazione in formato TeamCity utilizzando CSC dalla directory quadro v2.0.

E 'possibile compilare il codice utilizzando inizializzatori oggetto (una caratteristica di .NET 3.0) con il compilatore .NET 2.0 (Vorrei assumere non, anche se posso mancare qualcosa), e se non, qualcuno sa un modo per forzare in modo da utilizzare il compilatore 3.0 (se ne esiste uno) o il 3,5 compilatore?

Per chi fosse interessato, il comando CSC è in esecuzione:

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

Grazie!

Aggiornamento: Ho parzialmente (leggi: io non sono felice con lui) risolto il problema modificando il corridore costruire da Nant comandare corridore - questo appena eseguito il file di generazione Nant come è stato destinato senza alcuna manipolazione, anche se il livello di feedback è diverso. Eventuali altri suggerimenti sarebbero apprezzati.

È stato utile?

Soluzione

Si sta utilizzando il corridore sln2005 costruire? Che utilizzeranno il csc 2.0. Controllare la configurazione di generazione e cambiare per il corridore sln2008 (vedi http: / /www.jetbrains.net/confluence/display/TCD4/3.Build+Runners ). Questo dovrebbe utilizzare il compilatore 3.5.

Se si utilizza il corridore http://www.jetbrains.net/ confluenza / display / TCD4 / MSBuild verificare di aver impostato il numero di versione alla 3.5 nella pagina di configurazione.

Modifica: dopo aver controllato su Nant Vedere http://www.jetbrains.net/confluence/display/TCD4/NAnt_

in cui si dice: "Per impostazione predefinita, NAnt compito MSBuild utilizza MSBuild 2.0 (da Microsoft .NET Framework 2.0), tuttavia è possibile utilizzare MSBuild 3.5 (da Microsoft .NET Framework 3.5) se si aggiunge la proprietà teamcity_dotnet_use_msbuild_v35 con il valore di . fedeli al vostro compito msbuild nello script NAnt ad esempio: "

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

Altri suggerimenti

Per lo script NAnt si può semplicemente definire sistema di proprietà teamcity_dotnet_use_msbuild_v35 nelle impostazioni di configurazione build ( http://www.jetbrains.net/confluence/display/TCD4/6.Properties+and+environment+variables ) per farlo funzionare msbuild 3.5.

D'altra parte, se framework di destinazione NAnt è impostato su net-3.5 (solo per NAnt 0.86 beta 1) msbuild dovrebbe essere presa dal .NET 3.5 cartella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top