2017-05-04 10 views
0

私たちは、私は、コマンドラインからスクリプトオプションまたはSQLパッケージの生成のVisual Studioのを使用するかどうかに応じて異なる変更スクリプトを生成パブリッシュプロファイルを使用してVisual Studioのデータベースプロジェクトがあります。SqlPackageスクリプトアクションとVisualStudio Generateスクリプトが異なる結果を生成するのはなぜですか?

  • Visual Studioが10455を作成しますKBファイル。
  • SqlPackageは、次のコマンドを使用して、8835キロバイトのファイルを作成します:SqlPackage /a:Script /sf:pub.dacpac /pr:pub.profile.xml

VSは、そのスクリプトを生成するために使用するコマンドラインを観察する方法上の任意の提案?両方のプロセスが次の公開プロファイルを使用する場合の相違点は何ですか?

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <IncludeCompositeObjects>True</IncludeCompositeObjects> 
    <TargetDatabaseName>nrc_gateway</TargetDatabaseName> 
    <DeployScriptFileName>clm_model.publish.sql</DeployScriptFileName> 
    <BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss> 
    <ScriptDatabaseCompatibility>True</ScriptDatabaseCompatibility> 
    <ProfileVersionNumber>1</ProfileVersionNumber> 
    <DropDmlTriggersNotInSource>False</DropDmlTriggersNotInSource> 
    <DropIndexesNotInSource>False</DropIndexesNotInSource> 
    <TargetConnectionString>Data Source=.;Integrated Security=True;Persist Security Info=False;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True</TargetConnectionString> 
    <AllowIncompatiblePlatform>True</AllowIncompatiblePlatform> 
    <DropConstraintsNotInSource>False</DropConstraintsNotInSource> 
    <DropExtendedPropertiesNotInSource>False</DropExtendedPropertiesNotInSource> 
    <VerifyDeployment>False</VerifyDeployment> 
    <BlockWhenDriftDetected>False</BlockWhenDriftDetected> 
    <RegisterDataTierApplication>False</RegisterDataTierApplication> 
    <IncludeTransactionalScripts>True</IncludeTransactionalScripts> 
    <ExcludeUsers>True</ExcludeUsers> 
    <ExcludeDatabaseRoles>False</ExcludeDatabaseRoles> 
    <DropObjectsNotInSource>False</DropObjectsNotInSource> 
    <DoNotDropAggregates>False</DoNotDropAggregates> 
    <DoNotDropApplicationRoles>False</DoNotDropApplicationRoles> 
    <DoNotDropAssemblies>False</DoNotDropAssemblies> 
    <DoNotDropAsymmetricKeys>False</DoNotDropAsymmetricKeys> 
    <DropPermissionsNotInSource>False</DropPermissionsNotInSource> 
    <GenerateSmartDefaults>True</GenerateSmartDefaults> 
    <ScriptNewConstraintValidation>True</ScriptNewConstraintValidation> 
    </PropertyGroup> 
</Project> 
+0

ファイルの違いは何ですか? windiffのようなものは何と思いますか? –

答えて

1

Visual Studioはスクリプトを生成するためにCLIを使用しないため、対話を観察するオプションはありません。 (パブリックMicrosoft.SqlServer.Dac APIも使用していません。内部的には、この機能を提供するアセンブリへのアクセスが可視です)。

おそらく、SqlPackage.exeのバージョンとSSDTのバージョンが同じであることを確認することから始めます。古いバージョンのSqlPackage.exeでは、新しいデータベースオプション(データベーススコープの構成設定など)の一部がスクリプト化されていない可能性があります。

SqlPackageのVSのコピーはここに住んでいる:

c:\program files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SqlDB\DAC\140 

(最後の "140" のフォルダが実際にインストールされていますSSDTの特定のバージョンに応じて、130あるいは120であるかもしれないことに注意してください。)

ほとんど人々はここでSQL ServerのディレクトリからSqlPackage.exeを実行:

C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin 

は(140 DacFramework.msiの特定のバージョンに応じて、130あるいは120であってもよいことを、再度、注インストールされています)。

ただし、SqlPackage.exeがどこにある場合でも、そのファイルのバージョンがVisual Studioのコピーのバージョンと一致するかどうかを確認してください。

関連する問題