2016-08-05 6 views
0

私はSQL 2016インスタンスに接続し、データベースをVisual Studioにインポートして作成したDBプロジェクトを持っています。CLRの展開時にTFSからのデータベース配置に失敗する

パブリッシュファイルを作成してソースコントロールにチェックインすることで、デプロイメントを作成しました。私が変更しなければならなかった設定の中には、システムからいくつかのアカウントを削除したいので、ユーザーアカウントや権限の変更を展開しないというものでした。 TFSは、展開を行うためのMSBuildを実行すると

、ここに渡されるコマンドライン引数です:/p:VisualStudioVersion=14.0/T:ビルドし、公開

問題/p:SqlPublishProfilePath=MyDBProj.publish.xml

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
[System.Web] has an unresolved dependency to [System.Design]. A deployment script with correct ordering cannot be created. 

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
[System.Runtime.Remoting] has an unresolved dependency to [System.Web]. A deployment script with correct ordering cannot be created. 

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
[System.Design] has an unresolved dependency to [System.Web]. A deployment script with correct ordering cannot be created. 

C:\Builds\1\MyDBProj\MyDBProj - Prod\bin\MyDBProj.publish.sql (0, 0) 
An error occurred during deployment plan generation. Deployment cannot continue. 
(-1, 0) 
Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException) 
Exception Stack Trace: at System.Activities.Statements.Throw.Execute(CodeActivityContext context) 
at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) 
at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager) 
at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation) 

私は、データベースの参照として、マスタを参照しようとしました:私は、CLRユーザー定義型を除外しても、アセンブリを除外しない場合、展開はエラー(多くの他の類似の間で)以下で失敗したことにあります。他に何をすべきかわからない。私は、TFS上に構築されたときにデータベースと共に配備されたCLRコンポーネントが必要です。

+0

ビルドは問題なくローカルで実行されましたか(TFSではなく) –

+0

はい。同じマシン(Build Server/TFS Server)にログインし、VSとプロジェクトをビルドしてデプロイすると、すべて正常に動作します。それはTFS経由で実行すると失敗するだけです。 – SpaceCowboy74

答えて

0

TFSは、デフォルトでビルドエージェントマシン上にソリューションをビルドして展開するためのMSBuildコマンドを呼び出します。 VS2015(またはMSBuildコマンド)を使用して、エージェントマシンとローカルを手動でビルドして展開することができます。エージェントマシンを手動でビルドするときは、すべて正常に動作することを確認してください。 MSDNからDeploying CLR Database Objectsへの詳細な情報

さらに、エラー情報によれば、これは循環依存によって引き起こされる可能性があります。 VSは正しい順序で配置スクリプトを作成することができませんでした。なぜなら、依存関係ツリーを上手く動かすたびに、開始された場所が終わったからです。問題を絞り込むためにこれを再度確認してください。

+0

どのように循環依存を見つけるか考えていますか?奇妙なことに、私はそれをVSにソリューションをロードし、そこから展開する場合、私はビルドエージェントマシン/ TFSサーバー(彼らは同じボックスです)から手動で展開する場合はすべてOKです。 – SpaceCowboy74

+0

これはSQL2016に関連すると思われますか?あなたのTFSのバージョンは何ですか?それがTFS2015RTMよりも古い場合、おそらくSQL2016との互換性がないかもしれません。最初に最新バージョンのTFS2015update3(https://www.visualstudio.com/en-us/news/releasenotes/tfs2015-update3-vs)にアップデートしてもう一度やり直すことができます。 –

+0

すべてを最新のTFS(Update 3)に更新しました。今ではビルドをまったく実行できません。私はそれらを(xamlの設定を使って)待ち行列に入れて、 "Running for 0 seconds"に座り、何も更新しません。 – SpaceCowboy74

関連する問題