Здебільшого ви просто приймаєте те, що Visual Studio встановить для вас як за замовчуванням ... Я маю на увазі властивість BuildAction для кожного файлу, вибраного в Провіднику рішень. Існує ряд варіантів, і важко знати, що робитиме кожен з них.
Здебільшого ви просто приймаєте те, що Visual Studio встановить для вас як за замовчуванням ... Я маю на увазі властивість BuildAction для кожного файлу, вибраного в Провіднику рішень. Існує ряд варіантів, і важко знати, що робитиме кожен з них.
Відповіді:
Ні : Файл не входить до вихідної групи проекту і не компілюється в процесі збирання. Прикладом є текстовий файл, який містить документацію, наприклад, файл Readme.
Компіляція : файл компілюється у висновок збірки. Цей параметр використовується для файлів коду.
Вміст : Дозволяє отримати файл (у тому самому каталозі, що і збірка) як потік через Application.GetContentStream (URI). Щоб цей метод працював, йому потрібен спеціальний атрибут AssemblyAssociatedContentFile, який Visual Studio люб'язно додає, коли ви позначаєте файл як "Вміст"
Вбудований ресурс : Вбудовує файл у ексклюзивний ресурс маніфесту.
Ресурс (лише WPF) : Вбудовує файл у спільний (усі файли в складі з аналогічним налаштуванням) ресурс маніфесту асемблера з назвою AppName.g.resources.
Сторінка (лише WPF) : використовується для компіляції xaml
файлу в baml
. baml
Потім вбудований з тією ж методикою, що Resource
(тобто доступний як `AppName.g.resources)
ApplicationDefinition (тільки WPF) : Позначте файл XAML / class, який визначає вашу програму. Ви визначаєте код ззаду за допомогою x: Class = "Namespace.ClassName" і встановлюєте форму / сторінку запуску за допомогою StartupUri = "Window1.xaml"
SplashScreen (лише для WPF) : зображення, яке позначається таким чином, SplashScreen
як автоматично відображається при завантаженні програми WPF, а потім зникає
DesignData : компілює XAML- моделі перегляду, щоб користувальницькі керування могли попередньо переглядати зразкові дані в Visual Studio (використовує макети)
DesignDataWithDesignTimeCreatableTypes : Компілює моделі перегляду XAML, щоб користувацькі контролі могли переглядати зразкові дані в Visual Studio (використовує фактичні типи)
EntityDeploy : (Entity Framework) : використовується для розгортання артефактів Entity Framework
CodeAnalysisDictionary : XML-файл, що містить власний словник для правил написання правил
AdditionalFiles
? Я бачу це у VS 2015, але не можу знайти посилання на це.
З документації:
Властивість BuildAction вказує, що Visual Studio робить з файлом, коли виконується збірка. BuildAction може мати одне з декількох значень:
Ні - Файл не входить у групу виводу проекту та не компілюється в процесі збирання. Прикладом є текстовий файл, який містить документацію, наприклад, файл Readme.
Компілювати - файл збирається у вихідний збірник. Цей параметр використовується для файлів коду.
Зміст - файл не компілюється, але входить у групу вихідних даних вмісту. Наприклад, це налаштування є значенням за замовчуванням для .htm або іншого типу веб-файлів.
Вбудований ресурс - Цей файл вбудований у основний вихід проекту збірки як DLL або виконуваний файл. Зазвичай використовується для файлів ресурсів.
Сторінка - Бере вказаний файл XAML і компілює в BAML та вбудовує цей вихід у керований потік ресурсів для вашої збірки (зокрема AssemblyName.g.resources). Крім того, якщо у кореневому елементі XAML у кореневому елементі XAML є відповідні атрибути файл, він створить файл blah.g.cs, який буде містити частковий клас "codebehind" для цієї сторінки; це, в основному, включає виклик в цикл BAML для повторного зволоження файлу в пам'яті та встановлення будь-якої зі змінних-членів вашого класу до тепер створених елементів (наприклад, якщо ви додаєте x: Name = "foo" на елемент , ви зможете зробити це.foo.Background = Purple; або подібне.
ApplicationDefinition - схожий на Page, за винятком того, що він проходить в один крок, і визначає вхідну точку для вашої програми, яка буде інстанціювати ваш додаток, викликати його запуском, який буде інстанціювати тип, встановлений властивістю StartupUri, і дасть ваше головне вікно .
Крім того, щоб бути зрозумілим, це питання в цілому є надзвичайним в його наборі результатів; кожен може визначити додаткові BuildActions, просто створивши MSBuild Task. Якщо ви заглянете в каталог% systemroot% \ Microsoft.net \ Framework \ v {версія} \ і перегляньте файл Microsoft.Common.targets, ви зможете розшифрувати ще багато інших (наприклад, з VS Pro і вище, є дія "Тінь", яка дозволяє генерувати приватні користувачі, щоб допомогти з тестуванням одиничних приватних класів.
VS2010 має властивість для 'Build Action', а також для 'Copy to Output Directory'. Отже, дія "None" все одно буде копіюватися в каталог збірки, якщо для властивості копіювання встановлено значення "Copy if Newer" або "Copy Always".
Отже, дія збірки "Вміст" має бути зарезервована, щоб вказати вміст, до якого ви отримаєте доступ через "Application.GetContentStream"
Я використав налаштування "Дія збірки" параметра "Немає" та "Копіювати у вихідний напрямок" налаштування "Копіювати, якщо новіше" для деяких зовнішньо пов'язаних .config включає.
Г.
У VS2008 документ, який видається найбільш корисним, є:
Фонд презентацій Windows Створення програми WPF (WPF)
ms-help: //MS.VSCC.v90/MS.MSDNQTR.v90.en/wpf_conceptual/html/a58696fd-bdad-4b55-9759-136dfdf8b91c.htm
ApplicationDefinition Ідентифікує файл розмітки XAML, який містить визначення програми (файл розмітки XAML, кореневим елементом якого є Application). ApplicationDefinition є обов'язковим, коли Install є істинним, а OutputType - winexe. Додаток WPF і, отже, проект MSBuild може мати лише одне ApplicationDefinition.
Сторінка Ідентифікує файл розмітки XAML, вміст якого перетворюється у двійковий формат та компілюється у збірку. Елементи сторінки, як правило, реалізуються разом із класом, що відходить від коду.
Найпоширеніші елементи сторінки - це файли XAML, елементи верхнього рівня яких є одним із наступних:
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).
Ресурс Ідентифікує файл ресурсу, який збирається в збірку додатків. Як було сказано раніше, UICulture обробляє статті ресурсів.
Вміст Ідентифікує файл вмісту, який розповсюджується за допомогою програми. Метадані, що описують файл вмісту, збираються в додаток (використовуючи AssemblyAssociatedContentFileAttribute).
Як щодо цієї сторінки від Microsoft Connect (пояснення типів DesignData та DesignDataWithDesignTimeCreatableTypes). Цитування:
Далі описано два дії зі збирання файлів зразкових даних.
Зразкам файлів .xaml даних потрібно призначити одну з наведених нижче дій збірки:
DesignData : зразкові типи даних будуть створюватися як штучні типи. Використовуйте цю дію побудови, коли типи даних зразка не можуть бути створені або мають властивості лише для читання, для яких потрібно визначити значення зразкових даних.
DesignDataWithDesignTimeCreatableTypes : типові дані даних будуть створені за допомогою типів, визначених у зразковому файлі даних. Використовуйте цю дію збирання, коли вибіркові типи даних можна створювати за допомогою порожнього конструктора за замовчуванням.
Не настільки неймовірно вичерпно, але це принаймні дає підказку. Цей посібник MSDN також дає деякі ідеї. Я не знаю, чи застосовуються ці дії зі збирання і для проектів, що не є Silverlight.