2017-08-02 21 views
1

私は、いくつかのプロジェクトが含まれている必要があり、Nugetを使用するためには、コアでのpraxisの理解が必要な.coreソリューションを用意しています。これらのプロジェクトでは、[プロパティ - >パッケージ]の下に[ビルド時にパッケージを生成]がチェックされています。問題はnuget-packageが\ bin \ Debug \の下に置かれていることです。オーバーライドプロパティを定義する方法はありますか?ビジュアルスタジオのNuget Packコマンド2017

私はnuget.configに入れて試してみました:

<configuration> 
    <config> 
    <add key="repositorypath" value="some path" /> 
    </config> 
</configuration> 

運で。私も.csprojにPUに試してみました:

<PropertyGroup> 
     <TargetFramework>netcoreapp1.1</TargetFramework> 
     <PreBuildEvent></PreBuildEvent> 
     <PostBuildEvent></PostBuildEvent> 
     <GeneratePackageOnBuild>True</GeneratePackageOnBuild> 
     <PackageOutputDir> some path </PackageOutputDir> 
    </PropertyGroup> 

を、私は別の場所からファイルをコピーするためにOnPostBuild使用しようとしましたが、パッケージのコマンドは、ポストビルド後にトリガしているようだ...別の問題は、パラメータがで使用されるということですマクロはシステムによって設定されていません。実行時にemty文字列だけです。

私はまた、コマンドプロンプトから実行しようとしました。これは、Visual Studio 2017で.coreとNugetを使用しているためにバグがあります。コマンドpromt(nuget pack)から実行すると、「System.String型のオブジェクトをNuGet.Frameworks.NuGetFramework型に変換することができません。」

すべてのナゲットパッケージをVisual Studio 2017が使用しているデフォルト設定以外のカタログ...この設定をどうにか変更できますか?

ありがとうございます!

+1

NuGet.exe [新しいスタイルcsprojファイルでは動作しません](https://github.com/NuGet/Home/issues/4491)、 'dotnet pack'や' msbuild.exe/t:pack'を使う必要があります。 –

+2

.csprojの "PackageOutputDir"ではなく "PackageOutputPath"を使うべきです。そして、あなたはビルドイベントでこれを行うことができませんでした。パックパッケージのターゲットがビルドタスクの背後にあるためです。しかし、プロジェクトファイルのこのターゲット "GenerateNuspec"の後ろにカスタムコピータスクを追加することができます。 "SourceFiles =" @(MySourceFiles) "DestinationFolder =" c:\ MyProject \ Destination "/>

答えて

2

あなたは<PropertyGroup>内でこれを設定することで、パッケージの出力ディレクトリを上書きすることができます。

<PackageOutputPath>..\some-folder</PackageOutputPath> 
+0

マーティンズとレオの助けを借りて、"マジックストリングキー "を変更することについてお手伝いしました。 – user3154653

関連する問題