Visual Studio - 程序包管理器控制台 - 以编程方式运行命令

Nic*_*icy 1 .net powershell package-managers visual-studio-2010

好的,

每次我更新生产网站时,我都需要运行5个命令,这些命令只是名称不同.

我想自动化这个(将来,我可能需要100次运行这些命令).

我做的是:

Update-Database -ConfigurationTypeName "SlaveConfiguration" -StartupProjectName "FacturatieMVCv2.Data" -Verbose -ConnectionString "Server=PC-1\SQLEXPRESS;Persist Security Info=True;Initial Catalog=Database1;uid=prog;password=ndp103@50;" -ConnectionProviderName "System.Data.SqlClient" 
Update-Database -ConfigurationTypeName "SlaveConfiguration" -StartupProjectName "FacturatieMVCv2.Data" -Verbose -ConnectionString "Server=PC-1\SQLEXPRESS;Persist Security Info=True;Initial Catalog=Database2;uid=prog;password=ndp103@50;" -ConnectionProviderName "System.Data.SqlClient" 
Update-Database -ConfigurationTypeName "SlaveConfiguration" -StartupProjectName "FacturatieMVCv2.Data" -Verbose -ConnectionString "Server=PC-1\SQLEXPRESS;Persist Security Info=True;Initial Catalog=Database3;uid=prog;password=ndp103@50;" -ConnectionProviderName "System.Data.SqlClient" 
Update-Database -ConfigurationTypeName "SlaveConfiguration" -StartupProjectName "FacturatieMVCv2.Data" -Verbose -ConnectionString "Server=PC-1\SQLEXPRESS;Persist Security Info=True;Initial Catalog=Database4;uid=prog;password=ndp103@50;" -ConnectionProviderName "System.Data.SqlClient" 
Update-Database -ConfigurationTypeName "SlaveConfiguration" -StartupProjectName "FacturatieMVCv2.Data" -Verbose -ConnectionString "Server=PC-1\SQLEXPRESS;Persist Security Info=True;Initial Catalog=Database5;uid=prog;password=ndp103@50;" -ConnectionProviderName "System.Data.SqlClient" 
Run Code Online (Sandbox Code Playgroud)

我怎么能写i脚本,这样,当我输入控制台管理器时:

Update-Database -type Production -version latest
Run Code Online (Sandbox Code Playgroud)

它运行上面的所有命令,没有任何干扰.(所有连接字符串都位于.XML文件中,如:

 <databases>
    <type>Production
        <database>Database1</database>
        <database>Database2</database>
        <database>Database3</database>
        <database>Database4</database>
        <database>Database5</database>
    </type>
 </databases>
Run Code Online (Sandbox Code Playgroud)

希望有人可以帮助:)

友好的问候,Nico Sap

小智 7

如果我正确理解您的问题,您只需询问如何在包管理器控制台中编写和执行powershell脚本.

1)使用记事本在当前目录中创建一个新脚本:

notepad newScript.ps1
Run Code Online (Sandbox Code Playgroud)

2)将命令粘贴到记事本中

Update-Database...
Update-Datebase...
Update-Database...
Run Code Online (Sandbox Code Playgroud)

3)保存记事本文件

4)通过在包管理器控制台中键入以下内容来执行记事本文件:

.\newScript.ps1
Run Code Online (Sandbox Code Playgroud)

请注意,使用powershell函数和参数超出了本答案的范围.

  • 执行"newScript.ps1"后发生此错误:`术语'Update-Database'未被识别为cmdlet,函数,脚本文件或可操作程序的名称.检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试.如何解决? (3认同)