【问题标题】:Cross platform home path or conditional platform-specific path?跨平台主路径还是条件平台特定路径?
【发布时间】:2017-08-23 23:20:04
【问题描述】:

所以我在这里要解决的问题是,既然 Visual Studio 是跨平台的,我必须重新考虑一些构建策略。目前,我让我的 nuget 库项目在构建后将包发布到本地提要。这允许我在使用这些包的其他项目中进行开发,而无需发布到远程 nuget 服务器。目前,我通过将以下目标添加到每个项目的 csproj 来促进这一点:

<Target Name="PushPackage" AfterTargets="Pack" Condition="'$(Configuration)'=='Debug'">
    <Exec Command="nuget init $(ProjectDir)\bin\debug C:\nuget" />
</Target>

所以这会将每个包推送到 c:\nuget。这在 Windows 上运行良好,但当个人在 Ubuntu 上使用 VSCode 工作时,C:\ 就不是问题了。

所以我的问题是:例如,是否有跨平台的方式来定位“家”?我考虑使用$(Platform) 作为目标中 Exec 行的条件,以便我可以使用条件发出不同的命令,但我似乎无法找到我可以从$(Platform) 获得哪些值的列表。欢迎任何其他想法。

【问题讨论】:

    标签: nuget .net-core visual-studio-2017 asp.net-core-mvc-2.0


    【解决方案1】:

    跨平台主路径还是条件平台特定路径?

    如果您希望此命令可以跨平台使用,您可以使用选项 $(OS) 条件 '$(OS)' == 'Windows_NT'和 '$(OS)' != 'Windows_NT'

    所以详细目标应该是:

      <Target Name="PushPackageOnWindows" AfterTargets="Pack" Condition="'$(Configuration)'=='Debug' AND '$(OS)' == 'Windows_NT'">
        <Exec Command="nuget init $(ProjectDir)\bin\debug C:\nuget" />
      </Target>
    
      <Target Name="PushPackageOnUbuntu" AfterTargets="Pack" Condition="'$(Configuration)'=='Debug' AND '$(OS)' != 'Windows_NT'">
        <Exec Command="nuget command on Ubuntu" />
      </Target>
    

    【讨论】:

      【解决方案2】:

      我接受了上面的答案,但我想提供最终解决方案,以防其他人遇到同样的情况。 .deb nuget 包已经过时了,dotnet nuget cli 命令被超级淡化了,所以我最终安装了 mono 并下载了最新的 windows nuget.exe。当它作为两个单独的目标块执行时它没有执行,所以我像这样使用它:

       <Target Name="PushPackage" AfterTargets="Pack">    
          <Exec Condition="'$(OS)'=='Windows_NT'" 
            Command="nuget init $(ProjectDir)\bin\Debug c:\nuget" />
          <Exec Condition="'$(OS)'!='Windows_NT'" 
            Command="mono /usr/bin/nuget.exe init $(ProjectDir)bin/Debug ~/Documents/Nuget" />
       </Target>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-27
        • 1970-01-01
        • 2010-09-12
        • 2014-06-09
        • 2014-07-11
        • 1970-01-01
        • 2011-11-16
        • 2011-03-20
        相关资源
        最近更新 更多