Il nome "InitializeComponent" non esiste nel contesto corrente


383

Se creo un nuovo progetto in Visual Studio 2010 SP1 e seleziono "Applicazione WPF" e provo a creare l'applicazione generata, ottengo l'errore

Il nome "InitializeComponent" non esiste nel contesto corrente.

Stamattina ho avuto un errore simile quando ho provato a costruire il mio progetto attuale. Ieri non ho avuto problemi a compilarlo ed eseguirlo.

Ho creato un nuovo progetto e ho ricevuto l'errore ogni volta che ho compilato il progetto. Ho appena inviato il progetto a un collega, che ha appena compilato senza errori.

Che c'è?


3
Questo "errore" dell'utente sembra facile da risolvere, solo una semplice definizione corretta di x: Class. Fino a quando tutto non andrà bene, lo sviluppatore dovrebbe prestare maggiore attenzione, ma cosa succede se questo errore non è un errore fantasma con lo stesso messaggio di errore? Ho letto MOLTE diverse soluzioni alternative di voodoo dal 2012. Aiuterei da VS un messaggio di errore molto chiaro e DA CORSO un bugfix per gli errori fantasma con lo stesso messaggio. Gli sviluppatori dal 2012 stanno cambiando la configurazione di configurazione da file, progetti, copia-incolla del progetto, eliminazione di file dalla cartella App, riavvio di VS, ecc. Bravo MS ... un bug di 4 anni e ancora invecchiando!
juagicre,

2
Per i futuri lettori di questa domanda: questo problema sembra avere molte fonti possibili. Nel mio caso le prime risposte non sono state d'aiuto, ma una delle risposte più in basso era corretta.
MOnsDaR,

@MOnsDaR Lo spazio dei nomi del file Designer è stato il problema per me.
Ctrl S

Mentre questo può essere causato da molte cose (Namespace ribattezzato \ Tipo di pagina - MSBuild), alla fine ho trovato la soluzione per ciò che lo stava causando sul progetto che ho ereditato. Nei file .csproj, ho dovuto cambiare "ToolsVersion" da 4 a 15 (VS 2017).
MrMikeJJ,

Risposte:


737

L'ho incontrato un paio di volte e continuo a dimenticare cosa lo provoca. Mi sono imbattuto in questo quando ho rinominato lo spazio dei nomi sul mio codice dietro il file ma non nel mio XAML.

Quindi controlla se hai fatto lo stesso.

Lo spazio dei nomi e i nomi delle classi devono corrispondere poiché fanno entrambi parte di una classe parziale

namespace ZZZ
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
         //...
    }
}

<!-- XAML -->
<Window x:Class="ZZZ.MainWindow">

10
Grazie Sean. Sono venuto qui per pubblicare questa risposta, ma mi hai già battuto. Questo è esattamente quello che era successo e ha risolto il mio problema. Il tuo commento dovrebbe essere più in alto delle classifiche perché mi avrebbe risparmiato 15 minuti.
Magnum,

2
Se i nomi delle classi non
coincidono

2
Questa è la risposta Non sono sicuro del perché non sia stato scelto, ma è così e mi sono imbattuto in questo codice alcuni Xamarin.Forms.
Marcus Shockley,

1
Quando esegui il refactoring, assicurati di includere commenti e stringhe (Visual Studio 2015)
Gabriel GM

3
Per me (in Xamarain.Forms) usando un progetto "Quick Start" scaricato da Azure, era lo spazio bianco / rientro tra xmlns: x = " schemas.microsoft.com/winfx/2009/xaml " e x: Class che era il problema. L'ho cancellato e riscritto e ha funzionato!
James,

241

L'azione di costruzione per il file .xaml deve anche essere impostata su "Pagina", quando si sposta un file xaml tra progetti questa impostazione viene persa (almeno in VS 2010).


11
Questo è quello che mi stava succedendo. Grazie!
Ignacio Soler Garcia,

3
Dopo un copia incolla succede che l'azione di costruzione xaml cambia da pagina a Contenuto
Roberto

4
Succede ancora in Visual Studio 2012 (aggiornamento 2)
gumo

8
Succede ancora in Visual Studio 2013
Chris Ray

7
Scherzi a parte ... perché Microsoft, perché? Mi odi / noi?
qwertoyo,

106

Per coloro che non hanno errori in modalità debug, ma fanno hanno l'errore specificato in modalità di rilascio (eppure il progetto funziona bene), qui è qualcosa di semplice da provare:

  1. Apri il file XAML corrispondente al file xaml.cs offensivo.
  2. Apporta una modifica: qualsiasi modifica, ad esempio aggiungi uno spazio da qualche parte
  3. Salva il file e chiudilo

Questo metodo ha funzionato per me in VS 2015 e, secondo altri utenti, anche nel 2017 e nel 2019


3
Sei il mio eroe oggi. Grazie
Peter pete,

14
Abbastanza follemente, questo ha funzionato per me con VS2015. E ha corretto tutti gli errori in tutti i file XAML. Questo è davvero un momento WTF.
William Denman,

5
Dang, sono stato di nuovo bruciato da questo. Fortunatamente ho trovato la stessa risposta che ho già votato e commentato. Dovrei davvero, ma questo come post-it sul mio monitor.
William Denman,

3
Lo stesso in VS2017 e questo risolto.
Hans

2
Funziona ancora in VS2019 ...
soulflyman

29
  1. Passare alla directory della soluzione
  2. Elimina la cartella \ obj
  3. Ricostruisci la soluzione

Ho riscontrato questo errore durante il refactoring in cui ho rinominato alcuni file / cartelle e i file * .g.cs preesistenti dovevano essere rigenerati.


Sembra che io abbia lo stesso problema, ma questo non ha funzionato per me.
LuckyLikey,

Fallo dopo aver verificato che il tuo xaml x:Classcorrisponda al Namespace.Class.
Jake,

tnx. questo semplice trucco l'ha fatto per me.
Gil Adino,

26

C'è un motivo molto specifico per questo, ed è nelle impostazioni del progetto. Questo di solito accade ogni volta che si tenta di aggiungere un controllo / finestra WPF a una libreria o progetto di classe .NET 2.0. Il motivo di questo errore è che il progetto non sa che sta costruendo un controllo o una finestra WPF e quindi cerca di costruirlo come progetto C # 2.0.

La soluzione prevede la modifica del file .csproj. Fare clic destro sul progetto che causa il problema e selezionare "Scarica progetto". Fare clic con il tasto destro del mouse sul progetto scaricato e selezionare "Modifica .csproj". Il file .csproj si aprirà e potrai vedere l'XML. cercare la seguente riga:

<Import Project=…..

È vicino alla fine del file e l'unica riga che hai è probabilmente

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

Ciò indica a Visual Studio di creare il progetto come progetto .NET 2.0. Quello che vogliamo fare è dire a Visual Studio che questo è in realtà un progetto WPF, quindi dobbiamo aggiungere la seguente riga:

<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

Questa riga indica a Visual Studio di creare il progetto come progetto WPF. Ora il fondo del tuo file .csproj dovrebbe apparire così:

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />

Salvare il file .csproj, fare clic con il tasto destro in Esplora soluzioni e selezionare la compilazione "Ricarica progetto" e il gioco è fatto, il gioco è fatto!


1
Ho provato questo prima di scrivere questa domanda e non aiuta. Penso che sia un po 'strano che non riesca a compilare un nuovo progetto, ma il mio collega può ...
user876402

1
L'ho provato anche io e non ha aiutato. L'aggiunta della nuova importazione ha comportato un nuovo avviso (vedi sotto) ma l'errore originale è ancora presente. "Impossibile importare nuovamente" C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.WinFX.targets ". Era già stato importato in "C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.NETFramework.targets (76,3)". Questo è probabilmente un errore di creazione di build. Questa importazione successiva verrà ignorata. "
user316117

Ho anche provato e non ha funzionato ...?
Sizons,

Grazie, questo l'ha risolto per me, su un progetto che ho ereditato.
MrMikeJJ,

22

questo è successo con me quando ho accidentalmente cancellato il riferimento di classe dalla definizione di xaml:

Ho sostituito il

<Window x:Class="myapp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

prima linea con questo:

<RibbonWindow 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

So che questa non è la risposta alla domanda originale (perché il progetto si basa su un'altra macchina), ma il messaggio di errore era lo stesso, quindi forse aiuterò qualcuno con questa situazione.


questo non era esattamente il mio problema ma mi ha aiutato a localizzarlo. In seguito ho avuto lo spazio dei nomi senza il nome della classe
Rivenfall,

Questo ha funzionato per me. grazie
Sinaesthetic

Questo mi ha aiutato a trovare il mio problema, nel mio caso mi mancava la riga x: Class, aggiungendo questo risolto per me
apc

18

È possibile che venga visualizzato questo errore quando si importa una classe da un altro progetto o si modifica il percorso del file xaml o lo spazio dei nomi del file .am xaml o dietro.

Uno: potrebbe avere uno spazio dei nomi che non è lo stesso di quello che hai nel tuo nuovo progetto

namespace TrainerB.MVC.Forms
{
     public partial class AboutDeveloper : ContentPage
     {
          public AboutDeveloper()
          {
               InitializeComponent();
          }
     }
}

Come puoi vedere, lo spazio dei nomi nel file importato inizia con il vecchio nome del progetto: "TrainerB" , ma il tuo nuovo progetto potrebbe avere un nome diverso, quindi basta cambiarlo con il nome del nuovo progetto corretto, sia nel file .xaml che il file .cs dietro.

Due:

modificare le proprietà del file .xaml in:

Build Action: Risorsa integrata

Strumento personalizzato: MSBuild: UpdateDesignTimeXaml

Proprietà del file Xaml

Xaml Namespace Correcting 01

Xaml Namespace Correcting 02


Oh mio Dio! davvero grazie per quella soluzione. Ho testato ogni soluzione trovata lì e niente funziona. Il trucco era nelle proprietà del xamlfile. +1
IgniteCoders

16

Assicurati nel file xaml

<Page x:Class="Project1.Page1" ...

corrisponde al nome "Progetto1" e al nome "Pagina1"


Questo ha risolto il mio problema.
Ottaviano,

16

Controlla il Designer file .

Ho avuto lo stesso problema. Nel mio caso, la causa era che namespaceper FileName.Designer.cs non corrispondeva al (corretto) namespaceutilizzato in FileName.cs .

La modifica namespacedi FileName.Designer.cs in modo che corrisponda a quella di FileName.cs ha risolto immediatamente il problema.


14

Ho avuto questo (anche se era molto colpa mia ed è stato causato dopo aver copiato e incollato del codice); può verificarsi quando lo spazio dei nomi non corrisponde tra XAML e il codice dietro

PER ESEMPIO

<UserControl x:Class="DockPanel.TreeView" />

e il codice dietro è

namespace NotDockPanel

Questo mi ha portato a scoprire che il mio Designer aveva uno spazio dei nomi errato. Grazie!
Ctrl S

13

Ho riscontrato questo durante la ridenominazione di un controllo utente. Il modo in cui l'ho risolto era commentare InitializeComponent, verificare che tutti i nomi fossero corretti (xaml e codice dietro), compilare il progetto, decommentare InitializeComponent, quindi ricostruire. Sembra che ci possano essere un paio di cause / soluzioni per questo problema, ma in questo modo è stato per me.


1
Non ho rinominato nulla? Tuttavia questa soluzione ha funzionato per me. I file * .g.cs e * .gics mancavano nella cartella obj, commentandoli e creando il progetto generava i file mancanti. Non sono sicuro di come sia arrivato in questo stato.
finlaybob

11

Nessuna delle risposte sopra ha funzionato per me. Li ho provati tutti tranne quelli duplicati. Tuttavia, per qualche strano motivo, questo ha funzionato nel mio progetto multipiattaforma in Visual Studio 2015:

  1. Fare clic con il pulsante destro del mouse sul progetto che causa il problema in Esplora soluzioni. Nel menu a comparsa scegliere: Aggiungi -> Classe
  2. Seleziona multipiattaforma -> Forms Xaml Page. Mantieni il nome standard Page1.cs e fai clic su Aggiungi.
  3. Si noti come il precedente problema InitializeComponent () - sia appena scomparso per qualche motivo.
  4. Elimina il Page1.cs appena creato e continua la programmazione come se Visual Studio funzionasse bene.

Questo ha funzionato per me. Avevo fatto una copia e incolla e rinominato un controllo utente che avevo, quando InitializeComponent () ha iniziato a fallire.
Rafael Ventura,

Come diavolo ti sei imbattuto in questa correzione? Ho provato tutto il resto e questo ha funzionato. Utilizzando VS 2017, quindi il problema è attuale.
blearyeye,

Ottimo, questo ha funzionato per me. Grazie mille
IZI il

9

Sono d'accordo con la risposta sopra che gli spazi dei nomi devono corrispondere. Tuttavia, ho avuto un problema come questo in cui gli spazi dei nomi corrispondevano.

Per risolvere il problema, ho semplicemente cambiato lo spazio dei nomi in XAML in uno NON CORRETTO, salvato, quindi modificato in CORRETTO. Ecco!


Avrei aggiunto questo come commento alla risposta corretta, ma non ho il rappresentante per farlo :(
heights1976

Grazie per questo! Ha funzionato per me dopo essere impazzito provando ogni sorta di cose. La mia soluzione è stata originariamente compilata senza errori, quindi dopo che il PC è stato addormentato per un po 'di nuovo ha provato e ha ricevuto l'errore. Forse qualcosa a che fare con la modalità di sospensione?
JeremyB,

Ho avuto lo stesso problema e la stessa soluzione. Credo che abbia avuto qualcosa a che fare con IntelliSense. La modifica dello spazio dei nomi in xaml probabilmente ha innescato un aggiornamento delle parti rilevanti nel db IntelliSense. Questa è solo una supposizione però.
FishySwede

8

Se si utilizza Xamarin Forms e si sposta un file XAML, "l'azione di creazione" del file viene modificata. Xamarin Forms richiede "build action = risorsa integrata".

Applica "build build" in Visual Studio:

Select the XAML file -> Properties -> Build Action = Embedded Resource


Evviva, signore / signora!
naspinski

7

Provo tutti i suggerimenti sopra. Se ci provi anche senza successo, ottieni il modo più semplice. Crea un nuovo page.xaml, quindi copia il codice per la nuova classe ed elimina la classe XAML con problemi. Non passare più tempo.


7

Scaricare l'intera soluzione e ricaricarla di nuovo. Quindi ricostruire la soluzione. Questo ha risolto il problema per me.


Grazie ha funzionato per me!
Izion,

6

Un'altra causa comune di questo errore è se hai fatto qualcosa in questo:

  1. Fare clic con il tasto destro sulla cartella nel progetto per creare il nuovo UserControl. Questo crea un file di classe e xaml che deriva dal controllo utente nello spazio dei nomi della cartella.

  2. Quindi decidi di cambiare lo spazio dei nomi della classe perché in realtà stai solo usando le cartelle per l'organizzazione del codice. L'attributo x: Class non verrà aggiornato automaticamente, quindi cercherà una classe che non esiste. Probabilmente potrebbe usare un messaggio di errore migliore come "x: il tipo di classe non è stato trovato nel namesace bla.blaa.blaaa."


5

Un'altra soluzione a questo problema è semplicemente cambiare la proprietà-> Build Action su XAML da Embedded Resource a qualsiasi altra cosa, salvare, quindi cambiarlo nuovamente in Embedded Resource. L'errore scompare.


Ha funzionato due volte;)
Flou,

4

So che è stata data una risposta a causa di una causa diversa, ma questo è un post di grande successo e mi sono imbattuto nello stesso problema con una libreria di classi. In questo caso, si è rivelato essere sia una modifica nel mio spazio dei nomi (risposta in questo post qui ) sia che il compilatore non è riuscito a ricostruire Window.gics che definisce il metodo InitializeComponent (). Non è possibile perché nella libreria di classi mancava il valore ProjectTypeGuid per i progetti WPF nel file csproj. Le istruzioni per questo sono qui e qui . Ho pensato di condividere nel caso in cui qualcun altro avesse riscontrato lo stesso problema. In questo caso non è sufficiente cambiare lo spazio dei nomi.


3

Questo mi è successo perché un programma di disinstallazione del pacchetto Nuget ha cancellato tutti gli attributi dell'elemento <Application> in App.xaml. Ciò includeva l'attributo x: Class, che specifica il nome della classe dell'applicazione. Quindi la classe parziale contenente il metodo InitializeComponent () non è mai stata generata.

Ho risolto il problema ripristinando App.xaml nella copia controllata dal codice sorgente.


Ho avuto lo stesso errore a causa di un attributo x: Class mancante, ma non aveva nulla a che fare con Nuget. È semplicemente scomparso in qualche modo, probabilmente un po 'di magia in studio visivo.
Ismail Degani,

3

Questo mi ha risolto.

Avevo commentato le risorse nel file App.xaml

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <!--<ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>-->
  </Application.Resources>
</Application>

Commentando questa risposta per correggere l'errore di compilazione.

<Application x:Class="MyApp.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Application.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary
            Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </Application.Resources>
</Application>

Scavando un po 'più a fondo ho scoperto che il file app.g.cs in {Project} \ obj \ debug conteneva solo quanto segue quando ho lasciato la risorsa commentata.

/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public void InitializeComponent() {
    if (_contentLoaded) {
        return;
    }
    _contentLoaded = true;
    System.Uri resourceLocater = new System.Uri("/MyApp;component/app.xaml", System.UriKind.Relative);

    #line 1 "..\..\..\App.xaml"
    System.Windows.Application.LoadComponent(this, resourceLocater);

    #line default
    #line hidden
}

3

Per coloro che lo trovano su Internet. Controlla il file Windows.csproj se la compilation è lì. Dovrebbero esserci 2 voci

<Page Include="YourFile.xaml">
  <SubType>Designer</SubType>
  <Generator>MSBuild:Compile</Generator>
</Page>

<Compile Include="YourFile.xaml.cs">
  <DependentUpon>YourFile.xaml</DependentUpon>
</Compile>

Nel mio csproj mi mancava <DependentUpon>YourFile.xaml</DependentUpon>per qualche motivo e questo è ciò che l'ha risolto per me!
Isaac Baker,

3

Se gli spazi dei nomi sono corretti, c'è anche lo stesso errore,

Chiudi l'applicazione e aprila di nuovo .

Questo potrebbe risolvere il tuo problema


aprire e chiudere visual studio intendi?
LuckyLikey,

Alcune volte, XDesProc.exe (Progettazione dell'interfaccia utente XAML di Microsoft Visual Studio) interromperà il corretto funzionamento di Visual Studio e non caricherà correttamente il file xaml. Quindi il riavvio di Visual Studio ha risolto il mio problema. (Puoi anche andare su Processi nel Task Manager e interrompere solo quel processo senza riavviare Visual Studio).
Syed Siraj Wajeed,

L'ho scoperto in VS2017. Avevo cambiato tutto il resto e gli spazi dei nomi erano corretti ovunque, ma le chiamate InitializeComponent () avevano l'errore e le parole chiave parziali nei file xaml.cs avevano un avviso, qualcosa come "la classe parziale ha un solo file". Mi è capitato di chiudere e riaprire la soluzione e ho scoperto che entrambi questi problemi si sono risolti da soli.
Steve Crane,

3

Dopo alcune azioni lo spazio dei nomi del file .cs e quello nel file .xaml possono essere diversi (in xaml cercare x: Class = "namespace.yourType").

Risolvili in modo che siano uguali.


3

Ho scoperto che "l'oggetto di avvio" stava (non impostato) causando questo errore per me.

"Oggetto di avvio" (Non impostato)


Tutti gli altri dettagli menzionati nella domanda erano gli stessi?
marklark,

2
Le specifiche esatte non sono esatte considerando che la domanda non era chiara su come si manifestasse l'eccezione. Tuttavia, il sintomo di fondo è identico, quindi non vedo nulla di sbagliato nella mia risposta. La mia intenzione era quella di aggiungere alla conversazione poiché nessuna risposta / commento mi ha aiutato nel mio caso. Stavo semplicemente tentando di aggiungere alla base di conoscenza gli errori di compilazione spesso anonimi.
Rock

1
Grazie! Ha risolto il mio problema! Sembra che l'opzione data ( oggetto di avvio ) è stato ripristinato automaticamente quando mi sono trasferito il MainWindow.xaml da roota Viewdirectory.
AlexMelw,

3

Poiché questo sembra essere il filo conduttore per il problema relativo alla mancanza di "InitializeComponent", includerò qui la mia risposta.

Anch'io stavo avendo questo problema e ho provato tutto ciò che ho trovato qui e in tutti gli altri forum che Google ha trovato, tuttavia nessuno ha risolto il problema per me. Dopo due ore di tentativi, ho finalmente capito cosa non andava nella mia configurazione.

Nel nostro progetto, stiamo utilizzando i componenti Metro di MahApps . La vista che mi dava fastidio era una vista ereditata da MetroWindow, in questo modo:

<Controls:MetroWindow x:Class="ProjectNamespace.MyView"
                      xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
                      ... >

Ora, ho definito le mie risorse statiche come

<Controls:MetroWindow.Resources>
    <prop:Resources x:Key="LocalizedStrings"/>
    ...
</Controls:MetroWindow.Resources>

È così che ho definito Risorse UserControl s in tutte le altre mie visualizzazioni, quindi è quello che ho pensato funzionerà.

Tuttavia, non era così Controls:MetroWindow! Lì avevo assolutamente bisogno della definizione delle risorse come segue:

<Controls:MetroWindow.Resources>
    <ResourceDictionary>
        <prop:Resources x:Key="LocalizedStrings"/>
        ...
    </ResourceDictionary>
</Controls:MetroWindow.Resources>

Quindi il mio problema, in sintesi, era un <ResourceDictionary>tag mancante . Non so davvero perché questo abbia prodotto l'errore "InitializeComponent" e stranamente non lo abbia nemmeno prodotto su tutte le mie macchine, ma è così che l'ho risolto. Spero che questo aiuti (il restante 0,001% delle persone che riscontrano questo problema).


2

Ho appena riscontrato questo problema e si è scoperto che il mio progetto è archiviato nella mia cartella utente, che è memorizzata nella rete, e abbiamo avuto un'interruzione temporanea della rete. Ho fatto una build; si è lamentato del fatto che i miei file erano stati modificati all'esterno dell'editor (non avevano; i blocchi dei file erano appena stati corretti), e ha funzionato bene, rimuovendo l'errore relativo al InitializeComponent()metodo.

A proposito, nel caso ti stia chiedendo, sviluppare qualcosa da un'unità di rete è una cattiva pratica. Diventa particolarmente problematico quando stai cercando di sfruttare il codice gestito di .NET; nella mia esperienza, va fuori di testa ogni volta che costruisci. Ho dimenticato di mettere questo piccolo progetto da buttare nella cartella corretta e ho finito per pagare il prezzo.


2

Un'altra possibile spiegazione è che stai costruendo contro x86. Fare clic con il tasto destro del mouse sulla soluzione e selezionare Configuration Manager. Vedi se stai costruendo contro x86 invece di qualsiasi CPU.


2

Quindi mi rendo conto che questa è una domanda più vecchia, ma avevamo un problema simile. Siamo riusciti a costruire un progetto usando VS2012, ma non usando msbuild dalla riga di comando. Sono andato nel file .proj e ho notato che non aveva un record per "ProjectTypeGuids" nella sezione "PropertyGroup" predefinita, quindi ho aggiunto questo:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

che è il GUID del progetto per WPF. Ho quindi eliminato e aggiunto nuovamente UserControl e ha iniziato a funzionare. Non sono sicuro di dover fare l'ultimo passaggio, ma ora funziona per me.


2

Per qualche motivo dopo aver copiato .xaml ed i suoi .cs tra i progetti, a volte l'azione di costruzione sta cambiando. Assicurati che l'azione di costruzione del tuo .xaml sia Pagina.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.