Указать действие сборки контента - Nuget
Что является самым простым способом сообщить пакету Nuget о добавлении всех файлов CSS в качестве встроенного ресурса (т. Е. Действие сборки является встроенным ресурсом).
Я пытаюсь сделать это через install.ps1 в папке инструментов, но до сих пор не могу получить в любом месте
Примечание: я создаю пакет из структуры каталогов (tools\content\lib)
Это мой install.ps1, который не работает.
param($installPath, $toolsPath, $package, $project)
$MsbNS = @{msb = 'http://schemas.microsoft.com/developer/msbuild/2003'}
function EmbeddContent($ProjectLink, [string]$XPath)
{
$nodes = @(Select-Xml $XPath $ProjectLink -Namespace $MsbNS | Foreach {$_.Node})
foreach ($node in $nodes)
{
if($node.Include.StartsWith("Content\css"))
{
$cet = $node.ownerdocument.CreateElement("EmbeddedResource")
$cet.setAttribute("Include", $node.Include)
$parent = $node.ParentNode
[void]$parent.RemoveChild($node)
[void]$parent.Appendchild($cet)
}
}
}
$project.Save()
$fileLocation = $project.FileName
$dte.ExecuteCommand("Project.UnloadProject");
$proj = [xml](gc $fileLocation)
Embeddcontent $fileLocation '//msb:Project/msb:ItemGroup/msb:Content'
$proj.Save($fileLocation)
Помогите, пожалуйста..
1 ответ
Решение
Вы можете использовать DTE вместо использования xml для изменения BuildAction. С http://nuget.codeplex.com/discussions/227696:
$item = $project.ProjectItems | where-object {$_.Name -eq "ReleaseNotes.txt"}
$item.Properties.Item("BuildAction").Value = [int]3
Эта ссылка показывает значения перечисления: http://msdn.microsoft.com/en-us/library/aa983962(VS.71).aspx