.NET 控制台应用程序连接字符串转换

凯蒂

我刚刚将我的应用程序拆分为一个 Web 应用程序和一个控制台应用程序 webjob,我通过添加 ado.net 将控制台应用程序与我的机器数据库连接起来,并映射了我的模型。但是,当我作为 webjob 上传到 Azure 时,我认为它可能仍在尝试使用相同的数据库,即使它作为应用程序的 web 作业,因为它适用于我本地机器上的本地数据库,但不是作为 webjob。

基本上我要说的是如何在控制台应用程序中执行 Web 应用程序的发布 SQL 设置和 Web 配置转换的等效操作?

纳德犬

根据亚历克斯的回答,也许这就是你要找的......

我一直在为 Azure WebJobs 项目寻找一个简单的解决方案,以在构建期间转换 App.config,该解决方案可与服务器上的 Visual Studio 和 MSBuild 配合使用。

1. 为项目中的每个配置添加一个 XML 文件。

通常你会有DebugRelease配置,所以命名你的文件App.Debug.configApp.Release.config. 在我的项目中,我为每种环境创建了一个配置,因此您可能想对此进行试验。

2.卸载项目并打开.csproj文件进行编辑

Visual Studio 允许您直接在编辑器中编辑.csproj文件 - 您只需要先卸载项目。然后右键单击它并选择Edit <ProjectName>.csproj

3. 将 App.*.config 文件绑定到主 App.config

找到包含所有App.configApp.*.config引用的项目文件部分您会注意到他们的构建操作设置为None

<None Include="App.config" />
<None Include="App.Debug.config" />
<None Include="App.Release.config" />

首先,将所有它们的构建操作设置为Content.
接下来,使所有特定配置的文件依赖于主文件App.config以便 Visual Studio 将它们分组,就像对设计器和代码隐藏文件进行分组一样。

用下面的替换上面的 XML:

<Content Include="App.config" />
<Content Include="App.Debug.config" >
  <DependentUpon>App.config</DependentUpon>
</Content>
<Content Include="App.Release.config" >
  <DependentUpon>App.config</DependentUpon>
</Content>

4.激活变身魔法

在文件末尾之后

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

并且在决赛之前

</Project>

插入以下 XML:

  <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
  <Target Name="AfterCompile" Condition="exists('app.$(Configuration).config')">
    <!-- Generate transformed app config in the intermediate directory -->
    <TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
    <!-- Force build process to use the transformed configuration file from now on. -->
    <ItemGroup>
      <AppConfigWithTargetPath Remove="app.config" />
      <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
        <TargetPath>$(TargetFileName).config</TargetPath>
      </AppConfigWithTargetPath>
    </ItemGroup>
  </Target>

现在您可以重新加载项目,构建它并享受App.config转换!

供参考

确保您的App.*.config文件具有如下正确设置:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
     <!--magic transformations here-->
</configuration>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ASP.NET 5控制台应用程序(程序包)-如何从连接字符串创建DBContext?

来自分类Dev

将 .NET Core 控制台应用程序转换为自包含应用程序

来自分类Dev

.Net Core控制台应用程序-调试失败-与远程端点的连接已终止

来自分类Dev

将 NLog 连接并注入 .NET Core 控制台应用程序

来自分类Dev

如何在.net中以Web形式转换控制台应用程序?

来自分类Dev

将C#控制台应用程序转换为ASP.NET MVC应用程序

来自分类Dev

.Net Core /控制台应用程序/配置/ XML

来自分类Dev

从.Net控制台应用程序访问Moodle API

来自分类Dev

如何从.NET生成独立的控制台应用程序

来自分类Dev

从asp.net调用控制台应用程序

来自分类Dev

.NET Core 控制台应用程序的实体框架

来自分类Dev

.Net 控制台应用程序在后台运行

来自分类Dev

.Net 控制台应用程序作为 CLI 命令

来自分类Dev

无法从ASP.NET连接到AX Web服务,但可以从控制台应用程序连接

来自分类Dev

如何允许Windows防火墙通过.NET Core控制台应用程序进行FTP连接?

来自分类Dev

无法创建IOrganizationService实例以从.NET控制台应用程序连接到CRM 2016 Online实例

来自分类Dev

从控制台应用程序返回字符串

来自分类Dev

如何在控制台应用程序中设置默认连接字符串?

来自分类Dev

在控制台应用程序中定义连接字符串

来自分类Dev

在“ asp.net 5控制台”应用程序中,“控制台”不包含“ ReadKey”的定义

来自分类Dev

如何使.net Core 3.1控制台应用程序中的控制台记录器正常工作

来自分类Dev

从 .NET Core 控制台应用程序内部将 .NET Framework 控制台应用程序启动到新窗口中

来自分类Dev

AKKA.NET是在ASP.NET中还是在控制台应用程序中?

来自分类Dev

在标准 .net 控制台应用程序中使用 .Net Core dll

来自分类Dev

如何在 .Net Core 控制台应用程序中引用 .Net Core 库

来自分类Dev

线程仍在执行时,是否可以使.net控制台应用程序返回控制?

来自分类Dev

控制台应用程序的字符串/双转换

来自分类Dev

如何从提供程序(C#.NET Core控制台应用程序)获取Args?

来自分类Dev

为.net核心控制台应用程序创建签名并通知MacOS安装程序

Related 相关文章

  1. 1

    ASP.NET 5控制台应用程序(程序包)-如何从连接字符串创建DBContext?

  2. 2

    将 .NET Core 控制台应用程序转换为自包含应用程序

  3. 3

    .Net Core控制台应用程序-调试失败-与远程端点的连接已终止

  4. 4

    将 NLog 连接并注入 .NET Core 控制台应用程序

  5. 5

    如何在.net中以Web形式转换控制台应用程序?

  6. 6

    将C#控制台应用程序转换为ASP.NET MVC应用程序

  7. 7

    .Net Core /控制台应用程序/配置/ XML

  8. 8

    从.Net控制台应用程序访问Moodle API

  9. 9

    如何从.NET生成独立的控制台应用程序

  10. 10

    从asp.net调用控制台应用程序

  11. 11

    .NET Core 控制台应用程序的实体框架

  12. 12

    .Net 控制台应用程序在后台运行

  13. 13

    .Net 控制台应用程序作为 CLI 命令

  14. 14

    无法从ASP.NET连接到AX Web服务,但可以从控制台应用程序连接

  15. 15

    如何允许Windows防火墙通过.NET Core控制台应用程序进行FTP连接?

  16. 16

    无法创建IOrganizationService实例以从.NET控制台应用程序连接到CRM 2016 Online实例

  17. 17

    从控制台应用程序返回字符串

  18. 18

    如何在控制台应用程序中设置默认连接字符串?

  19. 19

    在控制台应用程序中定义连接字符串

  20. 20

    在“ asp.net 5控制台”应用程序中,“控制台”不包含“ ReadKey”的定义

  21. 21

    如何使.net Core 3.1控制台应用程序中的控制台记录器正常工作

  22. 22

    从 .NET Core 控制台应用程序内部将 .NET Framework 控制台应用程序启动到新窗口中

  23. 23

    AKKA.NET是在ASP.NET中还是在控制台应用程序中?

  24. 24

    在标准 .net 控制台应用程序中使用 .Net Core dll

  25. 25

    如何在 .Net Core 控制台应用程序中引用 .Net Core 库

  26. 26

    线程仍在执行时,是否可以使.net控制台应用程序返回控制?

  27. 27

    控制台应用程序的字符串/双转换

  28. 28

    如何从提供程序(C#.NET Core控制台应用程序)获取Args?

  29. 29

    为.net核心控制台应用程序创建签名并通知MacOS安装程序

热门标签

归档