指定内容的构建操作 - Nuget
Posted
技术标签:
【中文标题】指定内容的构建操作 - Nuget【英文标题】:specify build action of content - Nuget 【发布时间】:2011-11-17 10:09:44 【问题描述】:告诉 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
【讨论】:
福勒先生,您太棒了。 :) 该枚举中只列出了几个 BuildAction。有没有办法指定“TypeScriptCompile”构建操作? @BSick7,呵呵,我也在找同样的东西,找到什么了吗? 如果你想访问文件夹中的文件,你必须像这样访问它: $project.ProjectItems.Item("SomeFolder").ProjectItems.Item("ReleaseNotes.txt" ) 要设置其他任何内容,请执行以下操作:$item.Properties.Item("ItemType").Value = "MyOwnBuildActionChoice"以上是关于指定内容的构建操作 - Nuget的主要内容,如果未能解决你的问题,请参考以下文章