试图在没学过C#的前提下编译GARbro。

遇到的坑:

  1. SchemeBuilder可以直接删掉;

  2. 该项目似乎历史久远,项目的sln文件还是VS2013版本建立的,但是NuGet在VS2017版本开始,成为了VS的内部组件之一,对于项目.csproj文件的内容有着不同的要求。以前的版本似乎是要求一定要有.nuget/NuGet.targets文件,但是新版VS不需要也无法产生该文件,这时候可以通过用文本编辑器直接删除配置文件中的相关部分解决可能出现的报错。

    问题根源的代码段:

    <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
    <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
      <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
      </PropertyGroup>
      <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
    </Target>

    当然,两者相对位置自由,只要删了这两段就没问题了。

  3. 不知为啥我坑爹的VS2019没有自带nuget.org的在线源= = 弄了老半天说找不到包,结果一看只有一个100多M的离线本地源。。添加方式见:https://docs.microsoft.com/en-us/azure/devops/artifacts/nuget/upstream-sources?view=azure-devops

    这里只留一个关键信息,防止官方文档翻车-> https://api.nuget.org/v3/index.json

标签: none

添加新评论