Pregunta ¿Cuáles son los diferentes ajustes de "Crear acción" en las propiedades del proyecto de Visual Studio y qué hacen?


En su mayor parte, simplemente toma lo que Visual Studio lo configure como predeterminado ... Me refiero a la BuildAction propiedad para cada archivo seleccionado en Solution Explorer. Hay varias opciones y es difícil saber qué hará cada una de ellas.


749
2017-09-28 12:15


origen


Respuestas:


  • Ninguna: El archivo no se incluye en el grupo de resultados del proyecto y no se compila en el proceso de compilación. Un ejemplo es un archivo de texto que contiene documentación, como un archivo Léame.

  • Compilar: El archivo se compila en el resultado de compilación. Esta configuración se usa para archivos de código.

  • Contenido: Le permite recuperar un archivo (en el mismo directorio que el conjunto) como una secuencia a través de Application.GetContentStream (URI). Para que este método funcione, necesita un atributo personalizado AssemblyAssociatedContentFile que Visual Studio agrega gentilmente cuando marca un archivo como "Contenido"

  • Recurso incrustado: Incrusta el archivo en un recurso de manifiesto de ensamblaje exclusivo.

  • Recurso  (WPF solamente): Incrusta el archivo en un recurso de manifiesto de ensamblado compartido (por todos los archivos del ensamblado con configuración similar) llamado AppName.g.resources.

  • Página  (WPF solamente): Usado para compilar un xaml archivo en baml. los baml se incrusta con la misma técnica que Resource (es decir, disponible como `AppName.g.resources)

  • AplicaciónDefinición  (WPF solamente): Marque el archivo XAML / clase que define su aplicación. Especifique el código subyacente con x: Class = "Namespace.ClassName" y configure el formulario / página de inicio con StartupUri = "Window1.xaml"

  • Pantalla de bienvenida  (WPF solamente): Una imagen que está marcada como SplashScreen  se muestra automáticamente cuando se carga una aplicación WPF, y luego se desvanece

  • Datos de diseño: Compila los modelos de vista XAML para que los controles de usuario se puedan previsualizar con datos de muestra en Visual Studio (utiliza tipos de prueba)

  • DesignDataWithDesignTimeCreatableTypes: Compila los modelos de vista XAML para que los controles de usuario se puedan previsualizar con datos de muestra en Visual Studio (usa tipos reales)

  • EntityDeploy: (Marco de la entidad): utilizado para implementar los artefactos de Entity Framework

  • CodeAnalysisDictionary: Un archivo XML que contiene diccionario de palabras personalizado para Reglas de ortografía


882
2017-09-28 12:29



De la documentación:

La propiedad BuildAction indica   lo que Visual Studio hace con un archivo   cuando se ejecuta una construcción BuildAction   puede tener uno de varios valores:

Ninguno - El archivo no está incluido en   proyecto de salida del grupo y no es   compilado en el proceso de compilación. Un   ejemplo es un archivo de texto que contiene   documentación, como un archivo Léame.

Compilar: el archivo está compilado en   la salida de compilación Esta configuración se usa   para archivos de código.

Contenido: el archivo no está compilado   pero está incluido en la salida de contenido   grupo. Por ejemplo, esta configuración es   el valor predeterminado para un .htm u otro   tipo de archivo web.

Recurso incrustado: este archivo es   incrustado en la construcción del proyecto principal   salida como una DLL o ejecutable. Es   típicamente usado para archivos de recursos.


103
2017-09-28 12:20



Página: toma el archivo XAML especificado y lo compila en BAML e inserta ese resultado en la secuencia de recursos gestionados para su ensamblaje (específicamente AssemblyName.g.resources). Además, si tiene los atributos adecuados en el elemento raíz XAML en el archivo, creará un archivo blah.g.cs, que contendrá una clase parcial del "código subyacente" para esa página; esto básicamente involucra una llamada al BOLL goop para volver a hidratar el archivo en la memoria, y para establecer cualquiera de las variables miembro de su clase a los elementos ahora creados (por ejemplo, si pone x: Name = "foo" en un elemento , podrás hacer esto.foo.Background = Purple o similar.

ApplicationDefinition: similar a Page, excepto que se aplica onestep furthur, y define el punto de entrada de la aplicación que creará una instancia del objeto de la aplicación, ejecute call en él, que instanciará el tipo establecido por la propiedad StartupUri y dará a su ventana principal .

Además, para ser claros, esta pregunta en general es infinate en su conjunto de resultados; cualquiera puede definir BuildActions adicionales simplemente construyendo una Tarea MSBuild. Si busca en el directorio% systemroot% \ Microsoft.net \ framework \ v {version} \ y mira el archivo Microsoft.Common.targets, podrá descifrar muchos más (por ejemplo, con VS Pro y superior, hay una acción de "sombra" que le permite generar accesos privados para ayudar con la unidad de prueba de clases privadas.


33
2017-09-28 16:12



VS2010 tiene una propiedad para 'Build Action', y también para 'Copy to Output Directory'. Por lo tanto, una acción de 'Ninguno' aún se copiará en el directorio de compilación si la propiedad de copia está configurada en 'Copiar si es más nuevo' o 'Copiar siempre'.

Por lo tanto, una Acción de compilación de 'Contenido' debe reservarse para indicar el contenido al que accederá a través de 'Application.GetContentStream'.

Utilicé la configuración 'Build Action' de 'None' y la configuración 'Copy to Output Direcotry' de 'Copy if Newer' para algunos .config vinculados externamente.

GRAMO.


24
2018-04-09 21:37



En VS2008, la entrada de documento que parece ser la más útil es:

Windows Presentation Foundation Creación de una aplicación WPF (WPF)

ms-help: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm

AplicaciónDefinición  Identifica el archivo de marcado XAML que contiene la definición de la aplicación (un archivo de marcado XAML cuyo elemento raíz es Aplicación). ApplicationDefinition es obligatorio cuando Install es verdadero y OutputType es winexe. Una aplicación WPF y, en consecuencia, un proyecto MSBuild solo puede tener una ApplicationDefinition.

Página  Identifica un archivo de marcado XAML cuyo contenido se convierte a un formato binario y se compila en un conjunto. Los elementos de página normalmente se implementan junto con una clase de código subyacente.

Los elementos de página más comunes son los archivos XAML cuyos elementos de nivel superior son uno de los siguientes:

Window (System.Windows..::.Window).

Page (System.Windows.Controls..::.Page).

PageFunction (System.Windows.Navigation..::.PageFunction<(Of <(T>)>)).

ResourceDictionary (System.Windows..::.ResourceDictionary).

FlowDocument (System.Windows.Documents..::.FlowDocument).

UserControl (System.Windows.Controls..::.UserControl).

Recurso  Identifica un archivo de recursos que se compila en un conjunto de aplicaciones. Como se mencionó anteriormente, UICulture procesa elementos de recursos.

Contenido  Identifica un archivo de contenido que se distribuye con una aplicación. Los metadatos que describen el archivo de contenido se compilan en la aplicación (utilizando AssemblyAssociatedContentFileAttribute).


5
2018-03-31 17:53



Qué tal si esta página de Microsoft Connect (explicando los tipos DesignData y DesignDataWithDesignTimeCreatableTypes). Citando:

A continuación, se describen las dos Acciones de compilación para archivos de datos de muestra.

Los archivos .xaml de datos de muestra se deben asignar a una de las siguientes Acciones de compilación:

Datos de diseño


4
2017-10-10 07:01



  • Falsificaciones Parte del Marco de Microsoft Fakes (Aislamiento de prueba unitaria). No disponible en todas las versiones de Visual Studio. Las falsificaciones se utilizan para respaldar las pruebas unitarias en su proyecto, lo que le ayuda a aislar el código que está probando al reemplazar otras partes de la aplicación con talones o cuñas. Más aquí: https://msdn.microsoft.com/en-us/library/hh549175.aspx

3
2018-01-26 15:53