CIサーバーでの.NET 4.0ビルドの問題


99

誰かがCIサーバーにVisual Studio 2010をインストールせずに.NET 4.0アプリケーションをCIサーバーでコンパイルできるようにしましたか?

.NET 4.0用のSDKはありません。CIサーバーに.NET 4.0をインストールしました。Msbuild.exeは単純なプロジェクトで機能し、次の警告を出します。

(GetReferenceAssemblyPathsターゲット)-> C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(847,9):警告MSB3644:フレームワーク ".NETFramework、Version = v4.0"の参照アセンブリ見つかりませんでした。これを解決するには、このフレームワークバージョンのSDKまたはターゲットパックをインストールするか、SDKまたはターゲットパックがインストールされているフレームワークのバージョンにアプリケーションを再ターゲットします。アセンブリはグローバルアセンブリキャッシュ(GAC)から解決され、参照アセンブリの代わりに使用されることに注意してください。したがって、アセンブリが意図したフレームワークを正しくターゲットにしていない可能性があります。


1
これを警告ではなく致命的なエラーにするにはどうすればよいですか?これはビルドログに隠されており、代わりにmscorlib.dllに関するいくつかの不可解なメッセージでさらに失敗します
大佐パニック

私はここで、この上で詳細な記事を書かれている:neelbhatt.com/2018/05/04/...
ニール

回答:


128

VSをインストールする必要はありません。「Microsoft Windows SDK for Windows 7および.NET Framework 4」をインストールできます。

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b


44
デフォルトのインストールは1.7 GBですが、これらのファイルのほとんどは不要です。.NET開発> Intellisenseおよびリファレンスアセンブリ以外のすべてのチェックを外すと、必要な.NET 4ターゲットパックが提供されます(約450 MB)。
ルークサンプソン

1
また、.NET開発>ツールをチェックすると、sn.exeなどのユーティリティが組み込まれ、署名されたアセンブリの処理に役立ちます。
Mykro

8
Webインストーラーもあるので、必要な部分をダウンロードするだけで済みます。ここからダウンロードできます:microsoft.com/download/en/confirmation.aspx
Rasmus

2
これは「Windows 7用」という名前ですが、サポートされているオペレーティングシステムであるWindows 7、Windows Server 2003 R2 Standard Edition(32ビットx86)、Windows Server 2003 R2 Standard x64 Edition、Windows Server 2008、Windows Server 2008 R2は注目に値します。 、Windows Vista、Windows XP Service Pack 3
Aligma

2
その答えは私を助けます。私はここに示されているように解決SDK 7.1をインストール切り抜いた問題だったmathworks.com/matlabcentral/answers/95039
アリ

23

SDK for .NET 4.5はこちらから入手できます。インストーラーは、基本認証を備えたプロキシーでうまく機能します。サポートされているオペレーティングシステム:Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2

PS私の答えはジェレミーの答えへのコメントのようなものですが、私は答えにコメントする十分な評判がありません。


1
参照ページから:「Windows SDKには完全なコマンドラインビルド環境が同梱されなくなりました。WindowsSDKには、コンパイラとビルド環境を個別にインストールする必要があります。」したがって、ビルドサーバーを実行するには、これでは不十分だと思います。
クリス

1
これで解決しました。オプションを選択するだけで、「。NET Framework 4.5ソフトウェア開発キット」を選択できます。これは、62.3 MBのみを必要とし、SharePointアプリ展開用のWindows Server 2012 R2にインストールされたTFSビルド2013サーバーで正常に動作します。FrameworkPathOverrideパラメータをオーバーライドする必要はありません。
Koen Zomers、2015年

10

その他の代替策:Net 4.0 SDKまたはvs 2010をインストールしない

開発マシンからリファレンスアセンブリフォルダーをコピーして、サーバー(190MB)を構築します。

msbuild -p:FrameworkPathOverrideオプションを使用して、参照アセンブリフォルダーを指す

参照アセンブリの場所:

C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0またはC:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

これを見つけた:

.NET 4.0ビルドサーバー参照アセンブリの警告MSB3644

このエラーが発生した場合:「Microsoft.WebApplication.targets was not found」-開発マシンからターゲットをコピーするだけですhttps://stackoverflow.com/a/5344246/423356

mvc3がビルドサーバーにインストールされていない場合。MVCプロジェクトに「デプロイ可能なアセンブリを追加」 http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

SDKまたはVisual StudioをインストールせずにMSTestプロジェクトをビルドするときにエラーが発生した場合。これについてはいくつかのブログ投稿があります。残念ながら、私にとってソリューションは複雑すぎます。MSTestの代わりにNUnitを使用しています


インストーラーがより高いバージョンがあると言ったので、私の2012サーバーでは.Net 4をインストールできませんでした。@kiteが言ったことを行い、VS 2012がインストールされていたPCからコピーしました。これで私の問題は解決しました。
chdev77 2016年

0

このページには、各Visual Studioバージョンの.NET SDKがリストされています。http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

ダウンロードを小さくするには、完全なWindows SDKではなく、「開発者パック」または「ターゲットパック」を選択します。


開発者パックまたはターゲットパックをインストールすることは一般的なヒントになる可能性がありますが、.NET Framework 4.0に固有です(この質問はすべてです)そのようなパックはなく、Windows SDKは避けられません。
Lex Li
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.