小编Geo*_*org的帖子

.Net Core项目中的TextTemplating目标

我最近将测试项目迁移到.NET Core 2.0.该测试项目使用文本模板生成一些重复的代码.之前的项目有一个构建目标,可以在构建之前生成所有T4模板.因此,生成的代码也不会签入VCS.

我在项目中使用了这个片段来确保构建模板:

<PropertyGroup>
  <!-- Default VisualStudioVersion to 15 (VS2017) -->
  <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
  <!-- Determinate VSToolsPath -->
  <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  <!-- Run T4 generation if there are outdated files -->
  <TransformOnBuild>True</TransformOnBuild>
  <TransformOutOfDateOnly>True</TransformOutOfDateOnly>
</PropertyGroup>
<!-- Import TextTemplating target -->
<Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />
Run Code Online (Sandbox Code Playgroud)

我的第一个方法是保留这个片段并将其复制到新的.NET Core项目文件中.

在Visual Studio中,这很有效,因为显然,VSToolsPath设置正确.但是,当我运行.NET Core SDK工具时dotnet test(例如我在构建服务器上),VSToolsPath映射到Program Files\dotnet\sdk\2.0.3那里,无法找到文本模板目标.

因为这不起作用,我也尝试简单地Microsoft.VisualStudio.TextTemplating从Nuget 安装包,但这有两个问题:

  1. 它没有正式支持.NET Core并安装.NET 4.6.1和
  2. Nuget似乎没有安装任何东西,所以我无法调整项目文件中的路径.

t4 .net-core visual-studio-2017

13
推荐指数
2
解决办法
902
查看次数

避免过滤输入元素中的datalist项

我需要Web应用程序中的组合框行为.我遇到了以下解决方案:

<input type="text" list="options" >
<datalist id="options" >
   <option>Asterix</option>
   <option>Obelix</option>
</datalist>
Run Code Online (Sandbox Code Playgroud)

但是,只要输入任何文本,Firefox和Chrome只会向用户显示适合已输入文本的选项.在示例中,只要输入包含字母"A",浏览器就会提供Asterix作为选项但隐藏Obelix.

我想向用户显示datalist的所有条目,无论输入元素内部是什么.但是,我还想允许自定义输入.在示例中,用户应该能够进入Methusalix,当他这样做时,我想浏览器仍然显示Asterix和Obelix作为替代品.如何用HTML5实现这一目标?我敢打赌有一些选择允许这种行为,但我找不到它.

我使用它来让用户在多个配置条目之间进行选择.用户可以从现有配置条目中进行选择,也可以通过编写尚不存在的名称来创建新条目.但是,我想让用户可以随时返回现有的选项,无论他如何命名丢弃的新的.

html5 combobox

12
推荐指数
3
解决办法
4696
查看次数

在sphinx中重置图号,但仅限于html

使用HTML构建sphinx文档时,图形编号显示在全局范围内,即给定页面的图形以图42开始,尽管图42是该页面上的第一个图形,之前的所有其他图形出现在其他页面上.虽然这对于Latex来说绝对是理想的,但在HTML中却有些奇怪.

我正在使用sphinx 1.1和numfig,如在Sphinx和reStructuredText中使用数字引用数字,特别是pip包sphinx_numfig.Python版本是2.7,但我想这没关系.

如何重置第一个文件的图号,但仅当文档是以HTML格式生成时?

restructuredtext python-sphinx

6
推荐指数
0
解决办法
196
查看次数

缩放内容以适应UWP WebView

我正在尝试在UWP应用程序内的XAML-WebView控件中实现缩放到内容适配功能.由于缩放半官方解决方案似乎是使用JavaScript,我的方法是动态设置zoombody元素的CSS属性.

现在的问题是找到合适的缩放系数.

根据文档,WebView在文档模式下使用Edge浏览器.

但是,在Edge中,我发现document.body.clientWidth-property总是返回文档宽度,无论窗口大小甚至缩放因子如何.因此,我使用设置缩放系数

document.body.style.zoom = (window.innerWidth * 100 / document.body.clientWidth) + '%'
Run Code Online (Sandbox Code Playgroud)

这适用于桌面IE11设置为IE10文档模式,在Edge和其他浏览器中,例如Chrome,基本上我测试的所有浏览器.但是,它不适WebView用于应该在Windows 10 UWP应用程序中使用Edge的控件(感谢Jay Zuo的更新).

问题在于,在WebView控制document.body.clientWidth中,一旦设置,总是相同的,window.innerWidth因此得到的缩放因子总是100%,这是错误的.我想在用户调整窗口大小时重新缩放显示的页面.

有人知道可以使用哪种替代属性来获得WebView控件中的首选文档宽度吗?

编辑:我要放大的网页的最小示例如下:

demo.html:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <meta charset="utf-8">
        <title>Demo</title>
        <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
        <div id="container">
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

style.css中:

@charset "utf-8";

body {
    background-color: #FFF;
    margin-left: 0px;
    margin-top: 0px;
    margin-right: 0px;
    margin-bottom: 0px;
    overflow: hidden; …
Run Code Online (Sandbox Code Playgroud)

c# uwp uwp-xaml

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

是否可以在 Grpc.Core 中接受自签名证书?

场景:我有一个用 C# 实现的客户端,它应该使用 gRPC 连接到服务器,使用 SSL 进行加密连接。但是,服务器使用的证书可能是自签名的,也可能不是。

在文档中,我只看到我可以通过使用自定义根证书(或使用不会验证自签名证书的公共根 CA)来设置不安全(根本没有 SSL)或安全的通道凭据,这实际上意味着我必须确保以 root 身份安装自签名服务器证书。基本上,我如何以编程方式做到这一点?

var channelCredentials = new SslCredentials(rootAsPem); 
// FIXME: specify that channelCredentials can accept self-signed certificates or fetch certificates?
var channel = new Channel("myservice.example.com", channelCredentials);
var client = new Greeter.GreeterClient(channel);
Run Code Online (Sandbox Code Playgroud)

我想实现的是询问用户“嘿,您配置的服务器使用自签名证书,您同意吗?” 如果是,请将证书安装为 PEM 中的根证书。

我现在的主要问题是:

  1. 我什至如何获得服务器证书?我目前得到的只是一个例外。
  2. 是否可以避免将服务器证书安装为根证书?

.net c# ssl grpc

5
推荐指数
2
解决办法
5191
查看次数

创建数组get方法的委托失败

尝试创建一个访问数组的委托,我得到一个ArgumentException说该方法无法绑定.

无法绑定到目标方法,因为其签名或安全透明性与委托类型的签名或安全透明性不兼容.

重现此代码的最小代码量如下:

var method = typeof(string[,]).GetMethod("Get");
var func = Delegate.CreateDelegate(typeof(Func<int, int, string>), new string[4,5], method);
Run Code Online (Sandbox Code Playgroud)

虽然默认情况下Get方法是不可见的,但第一行确实有效并找到了正确的方法.由于签名匹配,我认为异常与Get方法是安全透明的事实有关,而Func <,,>可能不是.如何确定委托类型是否安全透明以及如何解决此问题?

c# delegates code-access-security

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

当stdout重定向到文件时,转发子进程stdout不起作用

我有一个问题,将子进程的stdout转发到当前进程的stdout.

这是我的MWE调用者代码(runner.py):

import sys
import subprocess
import time

p = subprocess.Popen([sys.executable, "test.py"], stdout=sys.stdout)
time.sleep(10)
p.terminate()
Run Code Online (Sandbox Code Playgroud)

这是被调用者test.py的内容:

import time

while True:
    time.sleep(1)
    print "Heartbeat"
Run Code Online (Sandbox Code Playgroud)

以下将工作并将所有心跳打印到控制台:

python runner.py
Run Code Online (Sandbox Code Playgroud)

但是,以下不起作用,输出文本文件保持为空(使用Python 2.7):

python runner.py > test.txt
Run Code Online (Sandbox Code Playgroud)

我需要做什么?

python subprocess

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