如何调试项目。json/nuget 构建问题?

How to debug project.json/nuget build issues?

Visual Studio 2015 企业

Nuget.exe 3.4.4.1321

项目:Windows 表格 Class 图书馆

好的,我在我的解决方案中设置了 project.json 文件,并且构建良好。我不知道 msbuild 如何找到 project.json 要求的包,但这没关系。

我把文件签入TFS 2012(我知道,我们公司还不会升级)

TFS 构建失败。说 "type cannot be found..."

当您不知道 MSBuild 在哪里查找包时,您究竟如何调试这些类型的问题?

我可以猜测 MS Build 可能在寻找什么位置,但我如何确认这一点?

csproj 提示路径有其缺点,但至少你知道 msbuild 会在哪里寻找你的包

with Project.Json 我不知道 msbuild 在哪里找!

包在构建服务器上,就在我期望的位置。如何告诉 msbuild.exe 在哪里寻找包裹?

根据你的错误信息,似乎引用使用有问题。要解决您的问题,请尝试以下操作。

  • 请为您的项目使用 Package.config 以在 TFS 构建中安装包。检查它是否有效以确保您的程序集和包正常。
  • 如果Package.config 不起作用。请提供详细步骤让我重现您的问题。
  • 如果 package.config 有效但 project.json 无效。看这个文档:Converting a csproj from package.config to project.json

要调试构建:https://msdn.microsoft.com/en-us/library/jj635150.aspx?f=255&MSPPError=-2147217396

注意: 要始终使用可用的最新版本的包,您可以将以下内容添加到 Nuget.config 文件。所以当你使用 packages.config 时它会得到最新版本。 Nuget.config 文件位于:C:\Users\UserName\AppData\Roaming\NuGet (nuget spec dependencies, get latest version?)

<configuration>
    <config> 
        <add key="dependencyversion" value="Highest" /> 
    </config>
</configuration>

project.lock.json 将报告 nuget 包的解析路径。

这将出现在 project.lock.json 文件的最底部: 样本:

 "packageFolders": {
    "c:\nuget_packages": {}

在 nuget.config 中添加这个键告诉 nuget 在哪里恢复包:

  <config>
    <add key="globalPackagesFolder" value="c:\nuget_packages" />
  </config>

这仅适用于带有 project.json 文件的 nuget 3+,不适用于 packages.config