c# - 指定内容的构建操作 - Nuget

标签 c# visual-studio powershell embedded-resource 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)

请帮助..

最佳答案

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

关于c# - 指定内容的构建操作 - Nuget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7423564/

相关文章:

c# - Windows 商店应用程序 ScrollViewer.ChangeView() 不工作

c# - 如何停止默认动画?

c# - 是否可以编写会导致编译时间过长的代码?

c++ - 程序不运行 - 它打开和关闭

c# - 如何识别重复的应用程序 list 证书

c# - 反序列化异常: Unable to find assembly

c# - C 和 C# 实现之间的 AES/CBC 加密差异

visual-studio - 在Visual Studio 11中复制一行代码的快捷方式

powershell - PowerShell-捕获错误未导出到文件外

asp.net-mvc - 用于修改 Global.asax.cs 的 Nuget PowerShell 脚本