3

多くのプロジェクト/ビルドに依存する .NET アプリケーションがあります。継続的インテグレーション サーバーとして TeamCity を使用しています。依存関係に基づいてビルドの順序を設定し、最後にアプリケーションを正しくコンパイルしました。これは Visual Studio 2010 を使用していました。最近 2012 に切り替えましたが、VS 2012 を使用するようにビルドを切り替えたのと同時に、ビルドを .NET 4.0 から .NET 4.5 に移動しようとするというミスを犯しました。顧客は自分の環境で .NET 4.5 を使用できませんでした。今でも VS 2012 を使用しようとしていますが、すべてを 4.0 に戻しています。

DLL 1 は正常にコンパイルされ、DLL2 で使用される .NUPKG を作成しています。DLL1 のアーティファクトが表示され、.NUPKG が実際に .NET 4.0 であることを示しています。しかし、DLL2 をコンパイルしようとすると、DLL 1 が見つかりません。パッケージ フォルダを確認すると、DLL1 の .NET バージョン 4.5 がインストールされているようです。

「依存関係」としてdllを直接インストールしようとしましたが、それが消去されていることがわかり(ビン/リリースに移動し、クリーン/ビルドを実行していました)、それを修正しましたが、システムはまだそれを認識していないようでした正しいバージョン。NUGET インストーラーを使用してみましたが、4.5 バージョンが得られるようです。VS 2012 からセットアップされた「不足しているパッケージの復元」を使用してみましたが、まだ 4.5 です。

ログから:

[install] NuGet command: C:\TeamCityBuildAgent\tools\NuGet.CommandLine.2.1.0.nupkg\tools\NuGet.exe install C:\TeamCityBuildAgent\work\52d92aca0070dc48\OurLibrary\packages.config -OutputDirectory C:\TeamCityBuildAgent\work\52d92aca0070dc48\packages -Source http://localhost/guestAuth/app/nuget/v1/FeedService.svc/
[install] Starting: C:\TeamCityBuildAgent\temp\agentTmp\custom_script2900382890103739900.cmd
[install] in directory: C:\TeamCityBuildAgent\work\52d92aca0070dc48\OurLibrary
[install] All packages listed in packages.config are already installed.

このコマンドを実行してパッケージが削除された場合、正しく再インストールされます。しかし、再インストールされたバージョンは net45 です。

はい、私の package.config には 4.0 が必要です:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="MyCompany.Metadata.Interfaces" version="1.0.0" targetFramework="net40" />
</packages>

提案??

4

1 に答える 1

1

http://localhost/guestAuth/app/nuget/v1/FeedService.svc/私が問題を正しく理解していれば、パッケージ マネージャー コンソールからupdate-package -reinstall -Source を実行して、正しく更新されているかどうかを確認できますか?

于 2012-11-30T09:56:38.903 に答える