2016-04-28 3 views
1

私はWindows/Mono用のクロスプラットフォームビルドプロジェクトを定義しようとしています。ビルドプロセスの一部は、リリースモードでコンパイルするときに、nugetパッケージを作成します。

<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に完璧に動作しますが、$(ProjectName) is emptyので、モノの下を失敗:

はここに私の "AfterBuild" の目標です。 MSBuild/XBuild間でビルドスクリプト変数を扱う方法に根本的な違いがありますか?

+1

Mmmh。これが見つかりました:https://bugzilla.xamarin.com/show_bug.cgi?id=21521 –

答えて

1

下記のMyFallback.Project.Nameのような手動でフォールバック値を追加してみてください。 msbuild直接、すでに働いていた、これはMac上Xamarinメーカーを通じて建物の固定を実行

<?xml version="1.0" encoding="utf-8"?> 
<Project> 
    <PropertyGroup> 
     <ProjectName Condition=" '$(ProjectName)' == '' ">MyFallback.Project.Name</ProjectName> 
    </PropertyGroup> 
    <!-- The rest of the file... --> 
</Project> 

関連する問題