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