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