如何解决因将 <FrameworkReference> 添加到 .nuproj 项目文件而导致的 ArgumentNullException?
How to resolve ArgumentNullException caused by adding <FrameworkReference> to .nuproj project file?
NuGet supports adding references to framework assemblies as well. You can specify those via the FrameworkReference item:
<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 的错误?
这是 Nuget.exe 的 v3.4.3 的问题 - 此处有详细信息:
https://github.com/NuGet/Home/issues/2648
我可以通过更新到 v3.5.0 来解决这个问题 - 只需在命令行上 运行 > nuget update -self
。
NuGet supports adding references to framework assemblies as well. You can specify those via the FrameworkReference item:
<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 的错误?
这是 Nuget.exe 的 v3.4.3 的问题 - 此处有详细信息: https://github.com/NuGet/Home/issues/2648
我可以通过更新到 v3.5.0 来解决这个问题 - 只需在命令行上 运行 > nuget update -self
。