如何解决由于将<frameworkreference>添加到.nuproj项目文件而导致的ArgumentNullException?

时间:2017-01-06 09:02:55

标签: nuget-package nuget-spec assembly-references nuproj

根据NuProj documentation

  

NuGet也支持添加对框架程序集的引用。您可以通过FrameworkReference项指定它们:

     
<ItemGroup>
 <FrameworkReference Include="System.dll" />
 <FrameworkReference Include="System.Core.dll" />
</ItemGroup>

但是当我尝试这个(见下文)时,我看起来像ArgumentNullException - 生成的.nuspec文件包含正确的<frameworkAssembly>元素,但是:

1>C:\…\MSBuild\NuProj\NuProj.targets(527,5): error : Value cannot be null.
1>C:\…\MSBuild\NuProj\NuProj.targets(527,5): error : Parameter name: folderName

这是我的.vbproj文件的一部分:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  …
  <PropertyGroup>
    <NuProjPath Condition=" '$(NuProjPath)' == '' ">$(MSBuildExtensionsPath)\NuProj\</NuProjPath>
  </PropertyGroup>
  <Import Project="$(NuProjPath)\NuProj.props" Condition="Exists('$(NuProjPath)\NuProj.props')" />
  <PropertyGroup Label="Configuration">
    <Id>SomeProject</Id>
    <Version>…</Version>
    <Title>…</Title>
    …
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\SomeProject.vbproj" />
  </ItemGroup>
  <!-- the next ItemGroup is the one I added manually, as shown in the documentation: -->
  <ItemGroup>
    <FrameworkReference Include="System.ServiceModel.dll" />
  </ItemGroup>
  <Import Project="$(NuProjPath)\NuProj.targets" />
</Project>

我做错了什么,或者这是NuProj的错误?

1 个答案:

答案 0 :(得分:2)

这是Nuget.exe v3.4.3的问题 - 详情请点击此处: https://github.com/NuGet/Home/issues/2648

我能够通过更新到v3.5来解决这个问题 - 只需在命令行上运行> nuget update -self