小编Nic*_*ick的帖子

发布时如何定位特定的.NET Core Runtimes?

当我发布我的.NET Core应用程序时,它会输出一个runtimes包含以下子目录的目录:

- publish/runtimes/
   - debian.8-x64/
   - fedora.23-x64/
   - fedora.24-x64/
   - opensuse.13.2-x64/
   - opensuse.42.1-x64/
   - osx/
   - osx.10.10-x64/
   - rhel.7-x64/
   - ubuntu.14.04-x64/
   - ubuntu.16.04-x64/
   - ubuntu.16.10-x64/
   - unix/
   - win/
Run Code Online (Sandbox Code Playgroud)

在我的CI/CD服务器上,我使用以下命令发布我的应用程序:

dotnet publish -c Release -o ..\publish
Run Code Online (Sandbox Code Playgroud)

我在项目文件中的发布设置如下:

  • 目标框架:netcoreapp2.1
  • 部署模式:依赖于框架
  • 目标运行时:win-x64

我只计划在Windows 2016 Server上发布此应用程序,因此runtimes不需要OSX/Linux/Unix 文件夹.更糟糕的是,在某些情况下,这些runtimes文件夹包含dlls导致OSA扫描误报的已知易受攻击.

有没有办法将项目配置为仅输出win运行时文件夹?

更新

我已经尝试了@ahsteele的建议,并且将RID添加到我的csproj文件的输出与我没有指定RID的情况相同.

当我运行CI/CD命令示例时

dotnet publish -c Release -r win10-x86 -o ..\publish
Run Code Online (Sandbox Code Playgroud)

我相信它创建了一个自包含的部署.我的发布目录从55MB变为120MB,从237个文件变为482个文件.

更新2

我已经尝试为发布步骤指定我的启动项目,并且它将运行时目录构建得更紧凑.

这是我正在运行的构建命令:

dotnet publish .\startupProject.csproj -c Release -o ..\publish
Run Code Online (Sandbox Code Playgroud)

这是输出:

- …
Run Code Online (Sandbox Code Playgroud)

build .net-core runtime-identifier

6
推荐指数
1
解决办法
1087
查看次数

具有Bootstrap模式的setTimeout在超时后不显示

我试图延迟显示一个Bootstrap模态,直到5秒钟过去.这是我的代码部分.它似乎是从我在MDN上阅读的内容写的.模态在任何时间后都不会出现.任何帮助,将不胜感激.

var timeout;
  function modalAlert(message){
        $("#myModalLabel").text("Hey Look!")
        $('.modal-body').html("<img src='"+message+"'>");
        timeout = window.setTimeout(showModal,5000);

  }
  function showModal(){
    console.log("HERE")
    $("#myModal").modal('show')
  }
Run Code Online (Sandbox Code Playgroud)

Vijay Ramamurthy帮我找到了解决方案:

var timeout;
  function modalAlert(message){
        $("#myModalLabel").text("Hey Look!")
        $('.modal-body').html("<img src='"+message+"'>");
        window.setTimeout(function(){showModal();},5000);

  }
  function showModal(){
    console.log("HERE")
    $("#myModal").modal('show')
  }
Run Code Online (Sandbox Code Playgroud)

javascript jquery modal-dialog settimeout twitter-bootstrap

3
推荐指数
1
解决办法
1万
查看次数

Docker CREATE INDEX中的SQL Server失败,因为以下SET选项的设置不正确:'QUOTED_IDENTIFIER'

我有一个SQL Server Dockerfile,我的import-data.sh *.sql从sql-data文件夹中导入文件。如果我*.sql从Datagrip之类的工具运行文件,一切都会正常,但导入会自动失败,并显示此错误消息。

错误信息:

消息1934,级别16,状态1,第4行
CREATE INDEX失败,因为以下SET选项的设置不正确:“ QUOTED_IDENTIFIER”。验证SET选项是否正确用于计算列的索引视图和/或索引和/或已过滤索引和/或查询通知和/或XML数据类型方法和/或空间索引操作。

Docker文件

FROM microsoft/mssql-server-linux:2017-latest

RUN mkdir /sql-data/
EXPOSE 1433

COPY entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/entrypoint.sh

COPY import-data.sh /usr/src/app/
RUN chmod +x /usr/src/app/import-data.sh

# Copy SQL Scripts to sql-data for processing
COPY ./sql-data/*.sql /sql-data/

CMD /bin/bash /usr/local/bin/entrypoint.sh
Run Code Online (Sandbox Code Playgroud)

入口点

#!/bin/bash

#start SQL Server, start the script to create the DB and import the data, start the app
/usr/src/app/import-data.sh & /opt/mssql/bin/sqlservr
Run Code Online (Sandbox Code Playgroud)

import-data.sh

#!/bin/bash
# wait for the SQL Server to come …
Run Code Online (Sandbox Code Playgroud)

sql-server docker dockerfile sql-server-linux

2
推荐指数
1
解决办法
532
查看次数