Как развернуть хранимую процедуру CLR через командную строку MsBuild? - PullRequest
4 голосов
/ 03 октября 2011

Я могу развернуть проект проекта SqlClr из Solution Explorer, щелкнув по нему правой кнопкой мыши и выбрав Deploy. Однако мне нужна версия командной строки, где я также могу указать пользовательскую ConnectionString.

1 Ответ

1 голос
/ 12 июля 2012

Команда msbuild MySqlClrProject.csproj /T:deploy.Это предполагает, что код собран, и, по крайней мере на моем компьютере, создайте отладочную сборку по умолчанию.Если вы хотите перестроить решение, развернуть двоичные версии выпуска и использовать настраиваемую строку подключения, введите команду msbuild MySqlClrProject.csproj /T:Clean;Build;Deploy /p:Configuration=Release;ConnectionString="Data Source= .;Initial Catalog=dropme;Integrated Security=True"

Это необходимо сделать из командной строки x86 2010 (MSBuild 4.0).Это не работает в Visual Studio 2008 (MSBuild 3.5).У меня нет Visual Studio 2012, чтобы посмотреть, работает ли он там.

Если вы попытаетесь запустить это из 64-битной командной строки, вы получите следующее:

c:\Users\jdearing\Documents\MySqlClrProject\MySqlClrProject.csproj(48,11): error MSB4019: The imported project "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SqlServer.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.     

Ниже приведен пример успешного выполнения команды:

Setting environment for using Microsoft Visual Studio 2008 x86 tools.

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>cd c:\Users\jdearing\Documents\MySqlClrProject

c:\Users\jdearing\Documents\MySqlClrProject>msbuild MySqlClrProject.csproj /T:deploy
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.261]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 7/11/2012 4:58:04 PM.
Project "c:\Users\jdearing\Documents\MySqlClrProject\MySqlClrProject.csproj" on node 1 (Deploy target(s)).
SqlClrDeploy:
  Beginning deployment of assembly MySqlClrProject.dll to server . : dropme
  The following error might appear if you deploy a SQL CLR project that was built for a version of the .NET Framework that is incompatible with the target instance of SQL Server: "Deploy error SQL01268: CREATE ASSEMBLY for assembly failed because assembly failed verification". To resolve this issue, open the properties for the project, and change the .NET Framework version.
  Deployment script generated to:
  c:\Users\jdearing\Documents\MySqlClrProject\bin\Debug\MySqlClrProject.sql

  Dropping [MySqlClrProject].[SqlAssemblyProjectRoot]...
  Creating [MySqlClrProject].[SqlAssemblyProjectRoot]...
  The transacted portion of the database update succeeded.
  Deployment completed
AfterDeploy:
  ---SqlReference---
  Data Source=.;Initial Catalog=dropme;Integrated Security=True
Done Building Project "c:\Users\jdearing\Documents\MySqlClrProject\MySqlClrProject.csproj" (Deploy target(s)).


Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:09.37

c:\Users\jdearing\Documents\MySqlClrProject>
...