我可以将我的C#(SQL Server)应用程序移植到另一台PC吗?

时间:2017-10-25 04:24:13

标签: c# sql sql-server

我使用C#和SQL Server 2016以及SQL Server 2017 Management Studio为我的大学创建了一个项目。

我的老师可能想在不同的PC上测试它,那我怎么能在不同的PC上运行呢?

我使用的数据库是在笔记本电脑的本地服务器上制作的。

是否可以将其移植到另一台PC?

对不起,如果端口是一个坏词,但它是我能想到的最好的东西。

Click here for image

3 个答案:

答案 0 :(得分:1)

端口是错误的,但我确实认为我明白你想做什么 - "移动"应用程序,以便他可以在另一个端点上运行它。

一般来说: - 另一个端点需要您依赖的相同版本的.Net - 他需要在笔记本电脑上运行相同版本的SQL Server

第1步:创建数据库备份

说明在这里: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server

第2步:创建可执行文件的存档(zip / rar,无论如何)

如果您尚未将其编译为独立的EXE并具有库依赖项,请将它们全部收集(通常在项目文件夹的构建目录中)

第3步:移动.bak文件并存档到另一台计算机

第4步:恢复数据库

说明在这里: https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/file-restores-simple-recovery-model

注意:

  • 正如Osman Rahimi在评论中指出的那样,您需要确保应用中的连接字符串不是硬编码到您的IP或机器名称。最好使用localhost或127.0.0.1。
  • 您可能需要考虑的另一种方法是将数据库IP放入您在.config文件中加载的变量中。这样你就可以将它连接到你的连接字符串中,并指示你的老师在配置文件中进行更改。
    • 这也可能意味着如果数据库位于同一网络上,您可以将数据库保留在工作站上,并且您没有阻止两个端点之间所需的SQL Server端口。

上述第二点的显着代码/参考点如下:

      //import statement to reference library
      using System.Configuration;

      //reference variable in your code (for your connection-string):    
      ConfigurationManager.AppSettings["SURVEYPATH_SERVER"].ToString()

      //where to add variable in config file
      <configuration>
       <appSettings>
        <add key="SQL_SERVER_IP" value="127.0.0.1" />
       </appSettings>
      </configuration>

答案 1 :(得分:0)

最简单的是,您可以使用机器的IP地址访问它,以便从不同的机器上浏览它。确保您的防火墙处于打开状态,或者至少端口80已打开,以便能够从外部浏览它。

但是,如果您想将所有代码复制到另一台计算机并从那里运行,则可以使用以下选项:

1)通过复制代码手动完成,并在那里进行配置,这可能需要时间,甚至可能容易出错,尤其是如果您错过了一些配置。如果您只想复制代码并将数据库保留在您的计算机中,请确保您的防火墙已打开(至少端口1433

2)如果您熟悉容器化,另一种方法是,您可以构建和共享docker's图像,然后轻松地在另一台计算机上运行容器。

一些文章:

Overview of .NET and Containers

Introduction to SQL Server Containers

Dockerizing Existing .NET MVC

3)此外,您可以使用vagrant作为不同的解决方案来共享您的盒子并在那里下载或通过手动虚拟化从开始开发您的应用程序(Virtualbox,VMware ..etc)

答案 2 :(得分:0)

访问另一台计算机上的数据库

步骤1:两台机器应连接到同一本地网络

步骤2:要在不同的机器上共享数据库,请参阅以下链接

https://docs.microsoft.com/en-us/sql/relational-databases/lesson-2-connecting-from-another-computer

我希望这会对你有所帮助