Я Contentпоменял несколько s на Nones. Думаю, это произошло, когда я переименовал файлы из .ascx в .cshtml при преобразовании в Razor. Их изменение вручную устранило некоторые проблемы с развертыванием, которые у меня были. Рад, что нашел это.
Нет - файл не входит в группу вывода проекта и не компилируется в процессе сборки. Примером является текстовый файл, содержащий документацию, например файл Readme.
Содержимое - файл не компилируется, но включается в группу вывода содержимого. Например, этот параметр является значением по умолчанию для файла .htm или другого типа веб-файла.
Полезно, но зачем вообще нужен пункт «Нет», если файл не должен быть включен в вывод? В чем смысл?
JimH44
1
Элементы @ JimH44 <Нет> часто используются для копирования файлов в выходной каталог, даже если по умолчанию они не входят в группу вывода . Если вы выберете «Копировать в выходной каталог» -> «Копировать всегда» для файла <Нет>, это приведет к его копированию, и вы увидите, что запись, добавленная в файл .csproj проекта, будет иметь запись <Нет>. для файла.
Conspicuous Compiler
3
Так в чем же разница между файлом <None> с «Копировать в выходной каталог» -> «Копировать всегда» и файлом <Content> с «Копировать в выходной каталог» -> «Копировать всегда»?
хеш-таблица
31
Одно отличие состоит в том, как они публикуются; «Нет» элементы не включаются в публикацию, в отличие от элементов «Содержимое»; например, в диалоговом окне «Файлы приложения» на вкладке «Опубликовать».
Не правда. По крайней мере, в новой точке net cli. если у вас есть элемент, объявленный как None с CopyToOutputDirectoryустановленным для trueнего набором, он будет опубликован вdotnet publish
disklosr
13
Я не уверен на 100% (я прочитал описание свойства Build Action в MSDN ), но простое копирование этого ответа из MSDN в StackOverflow не дает мне полного ответа на этот вопрос.
Разница между None и Content влияет только на веб-проекты. Для проекта командной строки, проекта WinForm или проекта UnitTest (в моем случае) и т. Д. None и Content не имеют разного поведения.
MSDN: «группа вывода проекта» или «группа вывода содержимого» - только термины, используемые в веб-проекте, верно?
Как вы говорите, кажется, что Nonevs Contentдействует только на этапе публикации, а не на этапе сборки . Кажется, что шаг сборки CopyToOutputDirectoryможет быть установлен на любом, и это контролирует, копируется ли файл на этапе сборки. Также кажется странным, что по умолчанию шаблоны T4 добавляются как Contentэлементы, а не Noneэлементы.
Кристофер Кинг,
8
В моей ситуации мой файл MSBuild имел ItemGroupресурсы изображений, которые выглядели следующим образом:
В то время как мой проект строительства штрафа, это оставило мне интересно , почему у меня был смесь Contentи Noneэлементов типа детали в моем ItemGroup. Эта статья MSDN (для Visual Studio 2010) дала мне руководство, которое я искал:
Обратите внимание, что когда редактор ресурсов добавляет изображение, он устанавливает для действия сборки значение « Нет» , поскольку файл .resx ссылается на файл изображения. Во время сборки образ загружается в файл .resources, созданный из файла .resx. После этого к изображению можно легко получить доступ с помощью строго типизированного класса, автоматически созданного для файла .resx. Следовательно, не следует изменять этот параметр на « Встроенный ресурс» , поскольку это приведет к включению изображения в сборку два раза.
Решение. Следуя этому руководству, я изменил Contentэлементы типа элемента с помощью текстового редактора на None.
Кроме того, для обзора элементов MSBuild см. Эту статью MSDN .
Вам не нужно None в файле проекта шаблона, чтобы включать файлы, которые вы определяете в .vstemplate, иначе они будут потеряны в процессе создания и перевода. Они остаются во временной папке, которую он использует для создания всего, а затем удаляются вскоре после этого.
В моем случае .Pubxml - один из тех файлов в списке None . Он не предназначен для создания решения или как статический файл для веб-проекта. Но для публикации сайта в Azure конфигурации в нем присутствуют.
Согласно статье Microsoft, это основные типы, которые мы видим среди тегов файлов .csproj :
Нет - файл не входит в группу вывода проекта и не компилируется в процессе сборки. Примером является текстовый файл, содержащий документацию, например файл Readme.
Компилировать - файл компилируется в вывод сборки. Этот параметр используется для файлов кода.
Содержимое - файл не компилируется, но включается в группу вывода содержимого. Например, этот параметр является значением по умолчанию для файла .htm или другого типа веб-файла.
Встроенный ресурс - этот файл встроен в основной вывод сборки проекта как DLL или исполняемый файл. Обычно он используется для файлов ресурсов.
Прокомментируйте, пожалуйста, здесь, если что-то вводит в заблуждение или неясно, просто голосование против не помогает мне улучшить его. Заранее спасибо.
IKriKan
1
Я часто получаю ошибку: имя элемента «Нет» для включения «Properties \ PublishProfiles \ FolderProfile.pubxml» должно быть «Content». в моем проекте Asp.Net на Bamboo, и иногда повторный запуск сборки может просто исправить это, поэтому не знаю, в чем именно проблема,
Бочен Линь
Привет, @BochenLin, детали, которые вы упомянули здесь, немного скудны, можете ли вы попытаться предоставить более подробную информацию здесь или опубликовать новый вопрос с полной информацией о проблеме и снимком экрана, если возможно [а затем поделитесь ссылкой на вопрос здесь].
IKriKan
0
Файлы содержимого не включаются в сборку, но включаются в публикацию.
Никакие файлы не включаются в сборку или публикацию, если они не настроены таким образом вами. Например, если для параметра «Копировать в выходной каталог» установлено значение «Всегда» или «Новее», они будут включены как в сборку, так и в публикацию.
Content
поменял несколько s наNone
s. Думаю, это произошло, когда я переименовал файлы из .ascx в .cshtml при преобразовании в Razor. Их изменение вручную устранило некоторые проблемы с развертыванием, которые у меня были. Рад, что нашел это.Ответы:
Статья MSDN о свойстве действия сборки объясняет различия.
источник
Одно отличие состоит в том, как они публикуются; «Нет» элементы не включаются в публикацию, в отличие от элементов «Содержимое»; например, в диалоговом окне «Файлы приложения» на вкладке «Опубликовать».
источник
CopyToOutputDirectory
установленным дляtrue
него набором, он будет опубликован вdotnet publish
Я не уверен на 100% (я прочитал описание свойства Build Action в MSDN ), но простое копирование этого ответа из MSDN в StackOverflow не дает мне полного ответа на этот вопрос.
Разница между None и Content влияет только на веб-проекты. Для проекта командной строки, проекта WinForm или проекта UnitTest (в моем случае) и т. Д. None и Content не имеют разного поведения.
MSDN: «группа вывода проекта» или «группа вывода содержимого» - только термины, используемые в веб-проекте, верно?
источник
None
vsContent
действует только на этапе публикации, а не на этапе сборки . Кажется, что шаг сборкиCopyToOutputDirectory
может быть установлен на любом, и это контролирует, копируется ли файл на этапе сборки. Также кажется странным, что по умолчанию шаблоны T4 добавляются какContent
элементы, а неNone
элементы.В моей ситуации мой файл MSBuild имел
ItemGroup
ресурсы изображений, которые выглядели следующим образом:<ItemGroup> <Content Include="Resources\image001.png" /> <Content Include="Resources\image002.png" /> <Content Include="Resources\image003.png" /> <Content Include="Resources\image004.png" /> <None Include="Resources\image005.png" /> <None Include="Resources\image006.png" /> <None Include="Resources\image007.png" /> </ItemGroup>
В то время как мой проект строительства штрафа, это оставило мне интересно , почему у меня был смесь
Content
иNone
элементов типа детали в моемItemGroup
. Эта статья MSDN (для Visual Studio 2010) дала мне руководство, которое я искал:Решение. Следуя этому руководству, я изменил
Content
элементы типа элемента с помощью текстового редактора наNone
.Кроме того, для обзора элементов MSBuild см. Эту статью MSDN .
источник
У меня есть проект, который не содержит компилируемых элементов (в нем хранятся html и javascript для модульных тестов jasmine).
Однажды мое решение (содержащее указанный проект) перестало компилироваться, говоря: «Целевой объект« Сборка »не существует в проекте».
Я добавил импорт, чтобы включить компилятор, который отлично работал на моей машине, но не смог использовать msbuild на сервере сборки.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Затем я изменил строку с
<None Include="SpecRunner.html" />
к
<Content Include="SpecRunner.html" />
и он работал и на сервере сборки.
источник
Вам не нужно None в файле проекта шаблона, чтобы включать файлы, которые вы определяете в .vstemplate, иначе они будут потеряны в процессе создания и перевода. Они остаются во временной папке, которую он использует для создания всего, а затем удаляются вскоре после этого.
источник
В моем случае .Pubxml - один из тех файлов в списке None . Он не предназначен для создания решения или как статический файл для веб-проекта. Но для публикации сайта в Azure конфигурации в нем присутствуют.
Согласно статье Microsoft, это основные типы, которые мы видим среди тегов файлов .csproj :
источник
Файлы содержимого не включаются в сборку, но включаются в публикацию.
Никакие файлы не включаются в сборку или публикацию, если они не настроены таким образом вами. Например, если для параметра «Копировать в выходной каталог» установлено значение «Всегда» или «Новее», они будут включены как в сборку, так и в публикацию.
источник