2017-05-02 7 views
2

私はネット標準1.5ライブラリを持っており、自動化された.NETのコアは、Visual Studio Team Servicesの中に構築し、何とかNuGetパッケージャタスクがエラーを生成し得ることを試みる:NuGet PackagerタスクがVSTSで誤ったMSBuildを使用していますか?

MSBuild auto-detection: using msbuild version '4.0' from 'C:\Windows\Microsoft.NET\Framework\v4.0.30319'. 
Attempting to build package from 'My.Shared.csproj'. 
##[error]The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format. C:\a\1\s\src\My.Shared\My.Shared.csproj 

パッケージが自動化されたセマンティックバージョンを使用する必要があります私はなぜGitVersion拡張機能を使用したのですか? GitVersion拡張は.NET Coreをサポートしていないため、別のNuGet Packagerタスクを作成する必要があります。 私が不思議に思うのは、.NET Core(screenshot)を使用して構築しているため、自動検出でMSBuild 4.0を使用していることです。 -MSBuildVersion 15を使用して

  • 力その他のMSBuildを、それはMSBuildのの指定されたバージョンを見つけることができないエラーを与える::

    物事は私がこれまで試した「15」(または14をそのことについて)

  • NuGetコマンドタスクで.nuspecファイルを作成し、.csprojの代わりに生成された.nuspecを使用します。残念ながら、AssemblyPath引数(screenshot)に渡すために、生成されたアセンブリファイル名を見つける方法がわかりません。

何が起こっているのか、それを修正する方法について教えてください。例えば。 MSBuild 15を使用するようにNuGet Packager Taskに指示して修正することができます。もしそうなら、どうすればいいですか?

+0

それは.NETのコアをサポートしていない旨のgitversionのドキュメントへのリンク:http://gitversion.readthedocs.io/en/latest/usage/msbuild-task/ – Martin

+0

MSBuildのバージョンでは、よると15.1ない15 – SlapY

+0

だろうドキュメントには15でなければなりません:https://docs.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference#restore – Martin

答えて

2

それは仕事のための間違った作業でしたが判明:私は、packコマンドと.NETのコアタスクを使用しました必要があります。

screenshot

0

最初のスクリーンショットに基づいて、*.csprojファイルのみをパッケージ化したいので、NuGetコマンドタスク(nuget spec)を追加の引数なしで使用する場合は、-AssemblyPath)。

.nuspecファイルを作成してNuGet Packagerタスクで使用する方法は正常に動作します。

NuGetコマンドタスクの後、$(Build.SourcesDirectory)Package.nuspecというファイルが作成されます。したがって、を指定すると、$(Build.SourcesDirectory)\*.nuspecとするためのcsproまたはnuspecファイルへのパスを指定できます。

enter image description here

+0

NuGetコマンドタスクは* empty * Package.nuspecファイルを作成しました。 NuGet specタスクはdllがどこにあるか分からないので、NuGet specコマンドにassemblyfilenameを渡す方法に関する私の質問です。何か案は? – Martin

+0

'.dll'はどこにありますか?' .csproj'ファイルの参照ですか? –

+0

ビルドによって作成された.dllをNugetコマンドタスクで使用しました。詳細ディレクトリを-AssemblyPath $(Build.SourcesDirectory)\ projectname \ ClassLibraryStandard \ bin \ $(BuildConfiguration)\ netstandard1.4として指定するだけです。 \ ClassLibraryStandard.dll'。 –

関連する問題