首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSBuild / XBuild关于$(ProjectName)的差异?

MSBuild / XBuild关于$(ProjectName)的差异?
EN

Stack Overflow用户
提问于 2016-04-28 07:23:28
回答 1查看 278关注 0票数 1

我试图为Windows/Mono定义一个跨平台构建项目。构建过程的一部分是在发布模式下编译时创建nuget包。

以下是我的"AfterBuild“目标:

代码语言:javascript
复制
  <Target Name="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PropertyGroup>
      <LocalPackagesDir Condition=" '$(LocalPackagesDir)' == '' ">$(TEMP)</LocalPackagesDir>
      <OutputPackageDir>nuget\</OutputPackageDir>
      <NuspecFile>nuget\$(ProjectName).nuspec</NuspecFile>
    </PropertyGroup>

    <Message Importance="High" Text="Building nuget package:  $(NuspecFile) ..." />
    <Exec Command="nuget pack $(NuspecFile) -OutputDirectory $(OutputPackageDir)" />

    <ItemGroup>
      <BuiltPackage Include="nuget\**\$(ProjectName)*.nupkg" />
    </ItemGroup>

    <Message Importance="High" Text="Copying nuget package: @(BuiltPackage) in local packages repository: $(LocalPackagesDir) ..." />
    <Copy SourceFiles="@(BuiltPackage)" DestinationFolder="$(LocalPackagesDir)" />
  </Target>

这在MSBuild/Windows中运行得很好,但是在Mono下失败了,因为$(ProjectName) is empty。在MSBuild/XBuild之间处理构建脚本变量的方式是否存在根本差异?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-13 15:57:03

尝试手动添加一个回退值,如下面的MyFallback.Project.Name

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<Project>
    <PropertyGroup>
        <ProjectName Condition=" '$(ProjectName)' == '' ">MyFallback.Project.Name</ProjectName>
    </PropertyGroup>
    <!-- The rest of the file... -->
</Project>

直接运行msbuild已经开始工作了,并且通过Mac上的Xamarin修复了这个构建。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36907970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档