1

最近、一部のプロジェクトに Fody を追加しましたが、ローカルでは問題なく動作しますが、TeamCity ビルド サーバーでは問題が発生します。VS2015 のパッケージ マネージャー コンソールで次のコマンドを実行すると、ローカルで複製できます。

PM> Update-package -reinstall
<snip ... />
Successfully uninstalled 'Fody 1.29.4' from Example.Project
Package 'Fody.1.29.4' already exists in folder 'D:\Projects\Examples\MySolutions\packages'
File Conflict
File 'FodyWeavers.xml' already exists in project 'Example.Project'. Do you want to overwrite it?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "N"):

ビルド サーバーでは、ログファイルがサーバーのデータ ドライブの空き領域をすべて使い果たすまで、このメッセージが何度も繰り返されます (最後の TC ログは 28GB になりました!)。

を試し-NonInteractiveましたが、これはビルド サーバーに影響を与えないようで、ローカルでは、パッケージ マネージャー コンソールで、そのパラメーターを認識しないと表示されます。

PM> Update-package -reinstall -noninteractive
Update-Package : A parameter cannot be found that matches parameter name 'noninteractive'.
At line:1 char:42
+ Update-package -reinstall -noninteractive <<<< 
    + CategoryInfo          : InvalidArgument: (:) [Update-Package], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand     
4

1 に答える 1

1

実際には、この動作を防止するオプションがあるようです:

-FileConflictAction Ignore

これにより、デフォルトのアクションが実行されます (上書きなし)。

TeamCity では、このオプションを NuGet 構成 ([詳細オプション] を選択) の下部にある [コマンド ライン パラメーター] で設定できます。

teamcity コマンドライン パラメーター

于 2016-01-10T14:08:25.580 に答える