7

会社のアセンブリ バージョン管理標準を使用するように現在のプロジェクトをセットアップする nuget パッケージを開発しています。カスタムビルドステップを追加することを除いて、(これまでのところ)必要なことはすべてスムーズに実行しています。

従来、これは .csproj ファイルを直接編集し、いくつかの新しいタグを xml に追加することによって手動で行われていました。これらは ...

  • プロパティグループ
  • 目標

実際にはそれらを正常に追加しますが、 install.ps1の$projectパラメータの EnvDTE オブジェクトを介するのではなく、xml を編集して実行しました。しかし、変更を破棄するかどうかを尋ねるメッセージが表示されます。

$project.Save()変更を行う直前にスクリプトに追加すると、ポップアップが削除され、プロジェクトが変更されたことを通知し、再読み込みするかどうかを尋ねるメッセージが表示されます。どちらが優れていますが、まだ完全ではありません。

これを行うより良い方法はありますか?

4

2 に答える 2

10

David Fowler (NuGet の主任開発者) によって作成された NuGetPowerTools パッケージを使用することもできます。

Install-Package NuGetPowerTools

それを依存関係としてパッケージに追加してから、install.ps1 スクリプトで次を呼び出すことができます。

Add-Import "\Path\To\Import.targets" $project.ProjectName
Set-MSBuildProperty "MyPropertyName" "MyPropertyValue" $project.ProjectName

$value = Get-MSBuildProperty "MyPropertyName" $project.ProjectName

詳細については、 https://github.com/davidfowl/NuGetPowerToolsでコードを確認してください。

于 2011-06-30T14:42:56.647 に答える
3

スコットハンゼルマンはmix11でこれを行いました。彼の手法は、プロジェクトをアンロードし(DTEを使用)、PowerShellを使用して変更し、次に再ロードする(DTEを再度使用)ことでした。

http://channel9.msdn.com/Events/MIX/MIX11/FRM09

于 2011-06-29T14:01:59.723 に答える