I have an ASP.NET Core
2.2 application running on multiple instances on an Azure Web App; it uses EF Core 2.2
and ASP.NET Identity
.
Everything works fine except the Password Reset flow where a user receives a link with token per e-mail and needs to choose a new password by clicking on that link. It works perfectly locally, but on Azure it always fails with an "Invalid Token" error.
The tokens are HTML encoded and decoded as necessary; …
azure asp.net-identity entity-framework-core appveyor asp.net-core-2.2
是否可以将AppVeyor用作Windows Qt持续集成服务?
大多数CI服务提供了一种浅层克隆存储库的方法.例如,在特拉维斯:
git:
depth: 1
Run Code Online (Sandbox Code Playgroud)
或者在AppVeyor上:
clone_depth: 1
or
shallow_clone: true
Run Code Online (Sandbox Code Playgroud)
这有明显的速度优势,因为您不必克隆整个存储库.
CI服务的浅层克隆是否有任何缺点?是否存在浅层克隆会导致CI构建失败的情况?否则,为什么不浅层克隆这些CI服务的默认设置?
我想在我的appveyor.yml
文件中跨多行分割一个长构建命令,但是我不能让它解包,所以当第一个FOR
命令被切断并返回错误时,构建失败.我不确定如何正确分割.yml
文件中的行,以便在Appveyor中重新组合它们.如何才能做到这一点?
这是一个简化版本:
build_script:
- cmd: >-
@echo off
FOR %%P IN (x86,x64) DO ( ^
FOR %%C IN (Debug,Release) DO ( ^
msbuild ^
/p:Configuration=%%C ^
/p:Platform=%%P ... ^
|| EXIT 1 ^
) ^
)
Run Code Online (Sandbox Code Playgroud)
我希望它出现在AppVeyor中:
@echo off
FOR %%P IN (x86,x64) DO ( FOR %%C IN (Debug,Release) DO ( msbuild /p:Configuration=%%C /p:Platform=%%P ... || EXIT 1 ) )
Run Code Online (Sandbox Code Playgroud)
额外的空间是不重要的,重要的是从开始FOR
直到最后)
的线出现在同一条线上.
请注意,从理论上讲,Appveyor也可以看到:
@echo off
FOR %%P IN (x86,x64) DO ( …
Run Code Online (Sandbox Code Playgroud) 我们分发一组Visual Studio 2010项目文件.用户需要升级以适应他们的口味.我们的.appveyor.yml
文件包括以下图像(除了配置和平台):
Visual Studio 2017构建失败:
Build started
git clone -q --depth=3 --branch=master https://github.com/noloader/cryptopp.git C:\projects\cryptopp
git checkout -qf 3504f1da2591d8b84e356527ed41dc6209eafa06
msbuild "C:\projects\cryptopp\cryptest.sln" /verbosity:minimal /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
Microsoft (R) Build Engine version 15.1.1012.6693
Copyright (C) Microsoft Corporation. All rights reserved.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(55,5): error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the …
Run Code Online (Sandbox Code Playgroud) 对于集成测试,我想加载自定义XML配置.此XML位于集成测试项目内的文件夹中.
对于进一步的目标,我想使用新的DNX项目.我知道他们还在预览中.
本地测试工作正常.现在的问题是,我不能使用相对路径,因为测试系统当前目录信息不是我项目的项目文件夹.与AppVeyor相同的问题.
构建代理程序在另一个文件夹中启动,因此相对路径信息错误并失败.这里不要惊讶.
我试图用这个片段来解决这个问题:
public abstract class IntegrationTestBase
{
public static string CurrentPath()
{
string codeBase = typeof (IntegrationTestBase).Assembly.Location;
UriBuilder uri = new UriBuilder( codeBase );
string path = Uri.UnescapeDataString( uri.Path );
return Path.GetDirectoryName( path );
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是:由于新的DNX Runtime不返回我的项目和/或程序集的位置,它返回运行时文件夹:
C:/Users/ben/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/Microsoft.Dnx.Loader.dll
Run Code Online (Sandbox Code Playgroud)
如果我要求CodeBase或Executing/CallingAssembly,则行为相同.
使用"旧的"简单C#项目和MsTest,我得到了预期的路径.
Environment.CurrentDirectory
在AppVeyor上不起作用,因为进程未在项目文件夹中启动,然后此命令返回另一个路径(已启动项目的路径).
在这里使用相对路径的正确方法是什么?
我是开发FOSS项目的GitHub组织的一员.我想使用AppVeyor在Windows上运行CI测试.目前,我看到了我自己的项目分支,以及其他一些在GitHub中命名为我的协作者的分支.但是,我没有看到项目的上游.显然,我是GitHub组织的管理员并不足以在AppVeyor中提供对它的访问.但是,无论如何,在我的帐户下设置这个都是错误的方法.可能这应该是以组织的名义.
为此,我希望为该组织拥有一个AppVeyor帐户,并为其成员提供适当的权限.阅读http://www.appveyor.com/docs/team-setup听起来好像AppVeyor可以区分用户(具有唯一的电子邮件和密码)和帐户(项目所属的),并且单个用户显然可以属于多个一个帐户可以拥有多个具有不同角色的用户.从这个意义上讲,我想创建一个新帐户,而无需为其创建用户.相反,我作为现有用户,通过GitHub登录识别,希望成为这个新帐户的第一个管理员,并准备好更改设置并添加更多用户.我该怎么做呢?
我有一个项目在Linux上使用C扩展编译,但在Windows上没有它们.当我第一次产生的车轮文件在Windows上python setup.py bdist_wheel
,他们成为普遍的,我无法将它们上传到PyPI将这些万向轮被优先pip
用于安装在.tar.gz
上传(从结果python setup.py sdist
).
围绕这个的诀窍是在setup.py
:
Distribution.is_pure = lambda *args: False
Run Code Online (Sandbox Code Playgroud)
或通过子类化Distribution
:
class BinaryDistribution(Distribution):
def is_pure(self):
return False
Run Code Online (Sandbox Code Playgroud)
并setup()
使用extra关键字参数在setup.py中 调用distclass=BinaryDistribution,
.
这一切都在我的运行Windows XP 64的VM上运行良好,该版本具有32和64位版本的Python 2.6/2.7/3.3/3.4和pypy,仅用于此目的.一个简单的批处理文件给了我:
dist/pkg-1.0-cp26-none-win32.whl
dist/pkg-1.0-cp26-none-win_amd64.whl
dist/pkg-1.0-cp27-none-win32.whl
dist/pkg-1.0-cp27-none-win_amd64.whl
dist/pkg-1.0-cp33-none-win32.whl
dist/pkg-1.0-cp33-none-win_amd64.whl
dist/pkg-1.0-cp34-none-win32.whl
dist/pkg-1.0-cp34-none-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)
pip
当你pip
在Windows上运行时,适当的软件包可以下载和安装,当你pip
在Linux上运行时,你可以获得
pkg-1.0.tar.gz
Run Code Online (Sandbox Code Playgroud)
其中包括在安装过程中编译的C源代码.
问题始于我没有备用Windows 7许可的机器,我可以安装Python 3.5(它不安装在EOL XP上).所以我调查了Appveyor并创建了appveyor.yml
:
environment:
matrix:
- PYTHON: C:\Python27
- PYTHON: C:\Python33
- PYTHON: C:\Python34
- PYTHON: C:\Python35
- PYTHON: …
Run Code Online (Sandbox Code Playgroud) 我正在努力创造将我的Roslyn分析器项目打包到NuGet的好方法.它需要与特定的NuGet包结构.dll
投入\analyzer\
,没有\lib\
.
要做到这一点,我必须打电话nuget pack <name>.nuspec
,而不是nuget pack <name>.csproj
.但如果我使用nuspec
,则$ version $ tag会被忽略.
似乎我唯一的选择是.nuspec
在每次重建时手动更新版本.什么是正确和正确的方法来实现这一目标?
我有一个与 travis-ci 一起使用的 C++ 项目。现在,我使用 boost.build 构建它,在 travis 上,当我运行单元测试时,我通过 来完成它gdb
,以便在发生崩溃时获得回溯。
为了以gdb
非交互方式执行此操作,我在命令行上像这样调用它:
gdb -return-child-result -batch -ex "run" -ex "thread apply all bt" -ex "quit" --args ./${file}
Run Code Online (Sandbox Code Playgroud)
${file}
我的可执行文件在哪里。
这告诉它:
bt
于所有线程,它在发生崩溃时发出回溯,如果没有崩溃也不会执行任何操作。gdb
退出,并以孩子的退出代码退出。现在我想在 appveyor 上做同样的事情。
Boost 构建似乎在 appveyor VM 中完美地开箱即用,因此向他们致敬。
不过,我在努力弄清楚如何配置cdb
,控制台表弟windbg
。它似乎挂在我的构建日志中。我在网上找到的大多数示例都与检查小型转储文件有关,而不是启动进程并在运行时对其进行调试。
我目前正在这样调用cdb
(来自 appveyor powershell 脚本):
cdb -c "$$><cdb_script.txt" -o $file.fullName
Run Code Online (Sandbox Code Playgroud)
我的cdb_script.txt
样子
.sympath srv*C:\Windows\Symbols*http://msdl.microsoft.com/download/symbols;
.reload;
~* k 99;
q
Run Code Online (Sandbox Code Playgroud)
我基本上是从我用谷歌搜索的各种东西拼凑起来的,包括
我真的希望找到更好的文档或关于如何具体做到这一点的例子。
我现在得到的错误是:
Microsoft (R) …
Run Code Online (Sandbox Code Playgroud)