我们正在使用TFS和msbuild使用发布配置文件部署我们的Web应用程序。这是完美的工作,但我正在尝试为我们的数据库项目做同样的事情,我只是无法得到以下错误: Error Deploy72002:无法连接到主服务器或目标服务器'xxx'。您必须在主服务器或目标服务器'xxx'中拥有具有相同密码的用户。
值xxx实际上是数据库的名称,而不是服务器的名称。我找不到输入服务器名称的地方,服务器实际上是xxx \ yyy。 有人知道如何/在哪里指定服务器名称或找出问题所在?
我正在构建项目,并使用以下msbuild参数: / t:build / t:发布/p:SqlPublishProfilePath=PublishProfiles/QA.xxx.publish.xml / p:Configuration = Output
答案 0 :(得分:1)
有人知道如何/在何处指定服务器名称或找出问题所在?
您是否拥有Windows身份验证或SQL身份验证?
对于Windows身份验证,您必须使用对该数据库具有某些权限的帐户登录。您需要的特定权限取决于您要执行的操作。 This document描述了您可能要执行的每项操作以及执行该操作所需的特定权限。
对于SQL身份验证,您需要修改发布配置文件(.xml,TargetConnectString),例如:
MSBUILD "....\TestProject.sqlproj" /t:build "/p:Platform=AnyCPU" /t:deploy /p:TargetConnectionString="Data Source=localhost;Integrated Security=True" /p:TargetDatabase="xxx" /p:Configuration=Release /p:VisualStudioVersion=14.0
此外,您可以使用以下msbuild构建项目:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.EtchedBorder;
public class Repaint_Test
{
public static void main(String args[]){
Frame frame = new Frame();
}
}
class Frame extends JFrame
{
public Frame() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500,250);
this.setLocationRelativeTo(null);
this.setLayout(new GridLayout(1,2));
Panel1 p1 = new Panel1();
Panel2 p2 = new Panel2();
Data.panel2 = p2; // getting the reference of panel2
this.add(p1);
this.add(p2);
this.setVisible(true);
}
}
class Panel1 extends JPanel
{
public Panel1(){
this.setBorder(BorderFactory.createTitledBorder(new EtchedBorder(),"Panel1:"));
JButton button = new JButton("Push");
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Data.text = "text"; // changing commonly accessed data
Data.panel2.setBackground(Color.PINK); // this works
//Data.panel2.invalidate();
//Data.panel2.validate();
//Data.panel2.updateUI();
//Data.panel2.revalidate();
Data.panel2.repaint(); // this does not work
}
});
this.add(button);
}
}
class Panel2 extends JPanel
{
public Panel2(){
this.setBorder(BorderFactory.createTitledBorder(new EtchedBorder(),"Panel2:"));
add(new JLabel(Data.text));
}
}
class Data
{
public static JPanel panel2 = null;
public static String text = "ooooo";
}