假设我有一个WPF控件,我希望通过NuGet将其部署为源代码转换。
该控件有2个与之关联的文件:UserControl.xaml.cs和UserControl.xaml。
当我通过NuGet部署它时,我获取目标项目中的文件,但它们在解决方案资源管理器中没有层次结构。这是因为NuGet不知道如何在.csproj文件中添加DependentUpon属性。
有解决方法吗?这个功能是否在NuGet的路线图中?
由于 塔尔
答案 0 :(得分:3)
答案是Powershell,特别是Install.ps1文件,如果放在NuGet包中的/ tools文件夹中,它将在安装时自动执行。这里的代码可以解决这个问题:
param($installPath, $toolsPath, $package, $project) $buildProject = @([Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName))[0] $file = $buildProject.Xml.Items | Where Include -eq "UserControl.xaml.cs" $propertyToEdit = $file.Metadata | Where Name -eq "DependentUpon" if (!$propertyToEdit) { $file.AddMetaData("DependentUpon", "UserControl.xaml") | Out-Null } $project.Save()
您可能无法立即在Visual Studio界面中看到更改,但如果您卸载/重新加载或关闭/打开项目,您将看到它。