我有一个项目,其中安装了一个名为MSBuildTasks的NuGet软件包。它将两个文件:MSBuild.Community.Tasks.targets和MSBuild.Community.Tasks.dll安装到解决方案目录中的.build目录。此程序包引用已添加到该项目目录中的packages.config文件中,以便在我构建项目时(并启用了NuGet程序包还原设置)它将还原该程序包,这很棒,因为这样我就可以将源分发给其他开发人员并将其构建在我们的构建服务器上,而不会丢失任何文件...

但是,问题在于,当NuGet还原程序包时,它不会将这两个文件还原到最初使用Install-Package MSBuildTasks命令安装在$(SolutionDir)\.build目录中的命令时的原始位置。相反,它已将其安装到$(SolutionDir)\packages\MSBuildTasks.1.4.0.78\tools目录,因此,现在,如果我希望包括MSBuild.Community.Tasks.targets文件,则必须在我的.csproj或其他.targets文件中绝对引用此路径。由于版本号无疑会发生变化,因此这会带来问题,需要手动进行更正。

有什么方法可以将MSBuildTasks .targets和.dll文件还原到首次安装到的$(SolutionDir)\.build的原始位置?恢复到packages目录的当前行为,尽管对于其他软件包也很有意义,但是对于该特定软件包来说似乎是一个错误,因为我将无法知道要包含在其他.target或。目录中的目录的版本号。 csproj文件。

最佳答案

NuGet restore仅会将文件下载到packages目录。不会进行任何其他修改。

查看MSBuildTasks NuGet package,添加到$(SolutionDir)\.build的文件由PowerShell脚本添加。恢复NuGet软件包时,将不会运行此PowerShell脚本。

您应该将$(SolutionDir)\.build添加到源代码控制存储库中。

关于visual-studio-2012 - MSBuildTasks和NuGet-如何还原MSBuild.Community.Tasks.dll?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26513214/

10-17 00:30