2011-09-14 27 views
17

告訴Nuget包將所有css文件添加爲嵌入資源(即構建操作是嵌入資源)的最簡單方法是什麼?指定內容的構建動作 - Nuget

我想通過在工具文件夾install.ps1做到這一點,但不能仍然取得任何

注:我從目錄結構創建包(工具\內容\ 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) 

幫助請..

回答

35

可以使用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

+0

福勒先生,你的先生是美妙的。 :) – labroo

+4

該枚舉中只列出了一些BuildActions。有沒有一種方法來指定「TypeScriptCompile」構建操作? – BSick7

+1

@ BSick7,赫我正在尋找同樣的東西,找到任何東西? –