3

Update: Ich habe den gleichen Fehler mit einem neuen leeren VS2015 WebApplication-Projekt reproduziert.Visual Studio 2015 Ausnahme SqlScriptPreprocessSqlVariables beim Ausführen von Web-Publizierungsassistent mit Update-Datenbank

  • Added eine Connection auf eine neue leere SQL-Datenbank
  • eine SQL-Skript-Datei zu der Lösung hinzugefügt und veröffentlicht ... im Assistenten veröffentlichen ausgewählt.

Example of web Publish wizard with included Update script.

ich den gleichen Fehler Aufbau einer Web-Bereitstellungspaket oder Web-deploy bekommen.

Ursprünglicher Beitrag: Die Task "SqlScriptPreprocessSqlVariables" ist unerwartet fehlgeschlagen. Dies geschieht, wenn ich den Veröffentlichungsassistenten oder MSBuild mit einem Profil verwende, in dem die Update-Datenbank ausgewählt ist. Auf einer neu installierten Maschine mit nur VS2015 Update1 und auf unserem Build Server mit Team Foundation Server 2015 Build Agent. Das gleiche Veröffentlichungsprofil funktioniert in unserer VS2013-Umgebung.

System.TypeLoadException: Signature of the body and declaration in a method implementation do not match. 
Type: 'Microsoft.Web.Publishing.Tasks.SqlScriptPreprocessor.SqlCommandExecuter'. 
Assembly: 'Microsoft.Web.Publishing.Tasks, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 
at Microsoft.Web.Publishing.Tasks.SqlScriptPreprocessor.SqlScriptPreprocessSqlVariables.Execute() 
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask>d__26.MoveNext() 

Hier ist der gleiche Fehler, aber vom Build Agent im neuen Build-System. Ich habe den gleichen Fehler runnig XAML Build auf dem neuen Agenten.

##[error]C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Deploy\Microsoft.Web.Publishing.MSDeploy.Common.targets(119,5): Error MSB4018: The "SqlScriptPreprocessSqlVariables" task failed unexpectedly. 
##[error]System.TypeLoadException: Signature of the body and declaration in a method implementation do not match. Type: 'Microsoft.Web.Publishing.Tasks.SqlScriptPreprocessor.SqlCommandExecuter'. Assembly: 'Microsoft.Web.Publishing.Tasks, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 
##[error] at Microsoft.Web.Publishing.Tasks.SqlScriptPreprocessor.SqlScriptPreprocessSqlVariables.Execute() 
##[error] at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
##[error] at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() 
+1

Woher haben Sie die Aufgabe "SqlScriptPreprocessSqlVariables"? Können Sie Ihr Projekt statt TFS Build lokal erstellen? Aus dem Protokoll geht hervor, dass sich Ihr Problem auf Ihr Projekt und nicht auf TFS bezieht. –

+1

Die Build-Arbeit, aber der Veröffentlichungsschritt gibt den Fehler. Ich rufe msbuild mit den folgenden Parametern auf '/ p: DeployOnBuild = wahr /p:PublishProfile=Release.pubxml/p: WebPublishMethod = Paket/p: PackageAsSingleFile = wahr/p: SkipInvalidConfigurations = true' – Oskbo

+0

@ Cece-MSFT I ' Ich bekomme den Fehler, wenn ich den Veröffentlichungsassistenten im Webprojekt ausführe. Wenn ich die Option Update Database deaktivieren, wird es funktionieren. – Oskbo

Antwort

2

Dies ist, wie ich das WebDeploy Verpackungs Problem behoben. Dies ist keine empfohlene Lösung, aber es funktioniert auf meinem Computer und auf dem Build-Server.

Suchen Sie die Datei Microsoft.Web.Publishing.MsDeploy.Common.targets

Dies ist der Ort auf meiner Maschine:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Deploy\ Microsoft.Web.Publishing.MsDeploy.Common.targets 

Auf Zeile 117 und leite ich aus dem folgenden Abschnitt kommentiert .

<!--<SqlScriptPreprocessSqlVariables 
UnsupportedKeywords="$(MsdeploySqlUnsupportedCommand)" CheckForUnsupportCommands="$(CheckSqlScriptForUnsupportedCommands)" 
TreadSqlScriptUnsupportedCommandsAsWarning="$(TreadSqlScriptUnsupportedCommandsAsWarning)" 
SqlScriptFile="%(_DatabasesToPackageForSQL.SourcePath)" 
DestinationGroup="%(_DatabasesToPackageForSQL.DestinationGroup)" 
ResolveIncludes="$(SqlScriptPreProcessResolveIncludes)" 
BatchDelimiter="$(SqlScriptPreProcessBatchDelimiter)" 
Condition="$(EnableSqlScriptVariableParameterize) And '%_DatabasesToPackageForSQL.SourcePath)' != '' And Exists('%(_DatabasesToPackageForSQL.SourcePath)') "> 
<Output TaskParameter="List" ItemName="_DatabasesToPackage_SqlVariables" /> 
</SqlScriptPreprocessSqlVariables>--> 
0

Ich vor kurzem konfrontiert das gleiche Problem, und ich löste es die Installation der neuesten Version von "SQL Server Data Tools" und Neustart der Maschine. Wie von @JimAho erwähnt, hängt das Problem mit der installierten Version der SQL Server-Datentools zusammen. Here you could download it

enter image description here

Vergessen Sie nicht, das Gerät neu zu starten.

+0

Ich tat genau das, aber es hat nicht geholfen. Aber die Tools wurden seitdem aktualisiert, also werde ich es erneut versuchen. – Oskbo