msbuild - una - error al conectar ala base de datos mysql
Excepción de Visual Studio 2015 SqlScriptPreprocessSqlVariables al ejecutar el asistente de publicación web con la base de datos de actualización (2)
Actualización: He reproducido el mismo error con un nuevo proyecto de aplicación web VS2015 vacío.
- Se agregó un connectionString a una nueva base de datos SQL vacía
- Se agregó un archivo sql-script a la solución y se seleccionó publicar ... en el asistente de publicación.
Ejemplo de asistente de publicación web con script de actualización incluido.
Obtendré el mismo error al crear un paquete de implementación web o una implementación web.
Publicación original: la tarea "SqlScriptPreprocessSqlVariables" falló inesperadamente. Esto sucede cuando uso el asistente de publicación o MSBuild con un perfil donde está seleccionada la Base de datos de actualización. En una máquina recién instalada con solo VS2015 Update1 y también en nuestro servidor de compilación con Team Fondation Server 2015 Build Agent. El mismo perfil de publicación funciona en nuestro entorno VS2013.
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()
Este es el mismo error, pero desde Build Agent en el nuevo sistema de compilación. Obtuve el mismo error al ejecutar la compilación de XAML en el nuevo agente.
##[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()
Así es como solucioné el problema del empaquetado de webdeploy. Esta no es una solución que recomiendo, pero funciona en mi máquina y en el servidor de compilación.
Busque el archivo Microsoft.Web.Publishing.MsDeploy.Common.targets
Esta es la ubicación en mi máquina:
C:/Program Files (x86)/MSBuild/Microsoft/VisualStudio/v14.0/Web/Deploy/ Microsoft.Web.Publishing.MsDeploy.Common.targets
En la fila 117 y hacia adelante comenté la siguiente sección.
<!--<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>-->
Recientemente me enfrenté al mismo problema y lo resolví instalando la última versión de "SQL Server Data Tools" y reiniciando la máquina. Como mencionó @JimAho, el problema está relacionado con la versión de SQL Server Data Tools instalada. Aquí puedes descargarlo
No olvide reiniciar la máquina.