小编Ori*_*rds的帖子

向SVN提交二进制文件

我搜索了一下,但没有找到满意的答案,所以我想听听你对此的看法.

我有几个工具,我必须不时更新和部署到几个服务器.源在SVN存储库中管理.

为了省去通过ftp或类似手段将二进制文件复制到生产服务器的麻烦(我无法在服务器上构建项目),我正在考虑在存储库中创建一个区域来提交它们.然后,我可以在需要时从svn服务器中简单地检索最新版本的可执行文件.

由于我不一定要在每次处理源代码时更新/提交二进制文件,因此我不会将二进制文件的文件夹创建为项目的子文件夹.然后(并且应该)承诺二进制文件是一个单独的,有意识的行为.

--- trunk
    --- project1
    --- project2
--- built
    --- project1
    --- project2
Run Code Online (Sandbox Code Playgroud)

据我所知,这个设置应该没有问题.我真正喜欢的是然后为源修订版和二进制文件提供单个标记,以便能够一次性检索所有属于一起的内容.

--- tags/project1/release2/ 
         includes files from 
--- trunk/project1/ revision 487 and
--- built/project1/ revision 488 
Run Code Online (Sandbox Code Playgroud)

我能追求的是什么,我将如何实现它?我应该改为寻找解决这个问题的其他方法吗?

svn tags

9
推荐指数
2
解决办法
4209
查看次数

TortoiseSVN并排配置不正确

升级到最新版本的TortoiseSVN(1.5.2.13595)后,它的上下文菜单不再可用.

尝试手动运行时,我收到此错误:

The application has failed to start because its side-by-side configuration is incorrect.
Please see the application event log for more detail
Run Code Online (Sandbox Code Playgroud)

应用程序日志显示了这一点

Activation context generation failed for "C:\Program Files\TortoiseSVN\bin\TortoiseSVN.dll". 
Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30411.0" could not be found. 
Please use sxstrace.exe for detailed diagnosis.
Run Code Online (Sandbox Code Playgroud)

tortoisesvn winsxs

8
推荐指数
1
解决办法
5242
查看次数

如何在不停止和启动Mongrel的情况下重启Mongrel下的Rails

有没有办法在Mongrel运行时重新启动Rails应用程序(例如,当您更改了插件/配置文件时).或者快速重启Mongrel.Mongrel给出了这些提示,但你怎么做?

**信号准备好了.TERM =>停止.USR2 =>重启.INT =>停止(不重启).

**Rails信号已注册.HUP =>重新加载(不重启).它可能不会很好.

mongrel ruby-on-rails

8
推荐指数
3
解决办法
8487
查看次数

无法获取用于android的gmail来打开自定义URL方案或intent:// URL

我在Android和iOS上实现了一个自定义URL方案,我们将向用户发送"激活"电子邮件,用户点击了生成本机应用程序的链接.

从技术上讲,我们发送一个HTML格式的电子邮件,其链接如下:

<a href="myapp://activate/accountId/uniquetoken">Click to activate</a>
Run Code Online (Sandbox Code Playgroud)

在iOS上它工作正常,但在Android上,它不起作用.

我已经看到了一些其他SO帖子和类似的东西,android本身应该处理自定义URL方案,但表明它是Chrome浏览器和Android应用程序的GMail剥离这些自定义myapp://URL.

根据其中一些帖子的建议,我尝试创建一个意向网址.我已经尝试了以下所有方法

intent://activate#Intent;scheme=myapp;package=com.mycompany.myapp;end

#Intent;action=activate;end

#Intent;component=com.mycompany.myapp/.ui.MainActivity;end

intent://#Intent;component=com.mycompany.myapp/.ui.MainActivity;end
Run Code Online (Sandbox Code Playgroud)

但他们都没有工作.没有可以在Android 6上的Android应用程序的GMail中点击,并且关于意图uri的格式的android文档是非常难以记录的.我能找到的最好的是"以编程方式在Java中创建你的意图,然后在其上调用.toUri",(这就是我生成大部分破坏意图的方法)

任何帮助将非常感激


更新1.这是Android清单中的活动和意图

    <activity android:name=".ui.MainActivity" android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <!-- load via URL scheme -->
        <intent-filter>
            <data android:scheme="myapp" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

我已经尝试设置一个Web服务器,它"反映"回自定义应用程序方案,这个适用于Android和iOS

<a href="http://mycloudserver.net/myapp/activate/accountId/uniqueToken">Click</a>
Run Code Online (Sandbox Code Playgroud)

该页面执行302重定向

myapp://activate/accountId/uniqueToken
Run Code Online (Sandbox Code Playgroud)

网络浏览器(Chrome for android)遵循此重定向,导致本机应用程序启动,因此确实为Gmail for Android应用程序提供了一种解决方案.

它引入了对云服务器的人为依赖,这将是很好的避免.

在iOS上它也在Safari浏览器中留下了一个空白页面,这是次要但不幸的.

android url-scheme

8
推荐指数
1
解决办法
4517
查看次数

是否有 Android 相当于 iOS 12 的一次性代码自动填充功能?

我已经在我们的 iOS 应用程序中实现了对 Apple 从消息中自动填充 SMS 一次性代码的支持。正如所记录的那样,这很简单 - 您只需在 UITextField 上将类型设置为“一次性代码”即可。

如何从消息在键盘上显示验证码建议

Android(通过 Google Play 服务)具有更强大的 SMS 检索器 API,并且可以接管整个过程,因此用户甚至不需要按任何类型的自动填充按钮或查看键盘

https://developers.google.com/identity/sms-retriever/overview

问题是,这需要在服务器端更改以包含应用程序哈希,而且还有很多工作要做。我模糊地记得在一些 Android 发行说明中看到过类似 iOS 自动填充键盘的东西,但我找不到它,所以这也许是我的想象。

除了 SMS 检索器 API(或需要完全权限才能简单地读取所有 SMS 消息)之外,android 上还有其他任何东西吗?或者这是Android上最好的前进方式?

谢谢

猎户座

sms android one-time-password

8
推荐指数
1
解决办法
4357
查看次数

你使用branches/tags/trunk约定吗?

您是否始终遵循将分支,标签和主干目录放在Subversion存储库顶层的惯例?最近,我已经停止了打扰,并没有发生任何不好的事情(还)!

如果需要创建目录树,应该可以移动目录树.我以后会惹麻烦吗?

svn

7
推荐指数
1
解决办法
2523
查看次数

n层应用程序中的依赖注入?

我有一个3层的.NET服务应用程序,遵循标准方法:

Frontend -> Object Model / Business Logic -> Data Access
Run Code Online (Sandbox Code Playgroud)

我一直在努力学习依赖注入,到目前为止已经发现它很棒(使用Autofac).3层中的每一层都需要创建各种各样的对象,有时需要额外的配置/等.似乎DI容器应该是理想的解决方案,但是我遇到了一些问题,看看它应该与系统的其他部分相关.

目前我在前端有一个配置DI容器的类.它基本上是一大堆代码说container.Register<SomeType>()等等.

问题是,它正在为所有3层配置容器,因此必须具有对数据访问层的相当侵入性的知识.在我的前端有这样的知识的代码在我的头脑中引起了警钟,因为将应用程序分成层级的关键是避免这种情况.
由于我的数据访问层不只是SQL服务器是一个笨拙的桶,而是由许多复杂的COM互操作和P/Invoke调用组成,所以这也变得更糟,因此对DI有相当大的影响组态.

我已经考虑过打破它 - 可能每层有一个容器,或者每层都有一个"Setup"类与全局DI容器对话以注册它自己的位,但我不确定这是否会导致比它解决的问题更多......

如果有人可以分享他们使用DI与多层应用程序的经验,我将非常感激.

谢谢,猎户座.

.net dependency-injection n-tier-architecture

7
推荐指数
1
解决办法
1608
查看次数

WPF InitializeComponent性能问题

我有一个WPF应用程序(.NET 4),它有一个主窗口,在主窗口内部显示许多较小的窗口UserControls.用户执行的各种动作导致UserControls显示的动作被具有不同数据的不同其他控件替换.

但是,在切换这些控件时,我遇到了性能问题.在加载控件时,WPF调度程序线程转到100%CPU.在较旧的计算机上,或者控件数量较多时,这可能会导致应用程序锁定长达30秒!

分析表明几乎所有这些CPU时间花在调用InitializeComponent所有不同的各种方法上UserControls- 没有一个控件看起来比其他任何方法差得多,它们似乎都需要0.2到0.5秒(在我的开发机器上快速处理器和良好的图形卡).

据我所知,InitializeComponentWPF实际上将已编译的xaml加载到内存中.

我在这里做什么都不知所措.我想在后台线程上预先初始化东西,但是必须在调度程序线程上创建和使用所有WPF控件,所以我认为这不可行.

否则它看起来像我唯一的选择是删除我的所有xaml?

任何帮助将不胜感激

c# wpf performance

7
推荐指数
1
解决办法
4829
查看次数

异步等待异常捕获 - 我在哪个线程?

我想做这样的事情:

public async Task<int> DoWork(int parameter) {
    try {
        await OperationThatMayCompleteSynchronously(parameter);
    } catch(Exception) e { 
        if(completedSynchronously)
           doSyncThing();
        else
           doAsyncThing();
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我正在线程池上运行任务,因此没有异步上下文.

我希望能够分辨出立即抛出的异常和我仍然在调用线程上的区别(例如parameter,导致函数中止无效),并且当异步任务完成时抛出异常,并且我' m在其他一些随机回调线程上(例如网络故障)

如果我不使用await,我可以弄清楚如何实现这一点,并且只是ContinueWith在异步操作中使用,但它是否可以使用await

c# exception-handling async-await

7
推荐指数
1
解决办法
193
查看次数

无法从KeyStore删除别名-keyStore.store引发UnsupportedOperationException

无法从KeyStore中删除别名中提到了相同的问题。该问题的解决方案是“在keyStore上调用.store()方法以刷新更改”,这看起来不错。

我的问题是,我正在使用AndroidKeyStore,它似乎不支持该操作。我的代码如下:

public static void resetKeyStore() {
    KeyStore keyStore;
    try {
        keyStore = KeyStore.getInstance("AndroidKeyStore");
        keyStore.load(null);

        ArrayList<String> toDelete = new ArrayList<>();

        Enumeration<String> e = keyStore.aliases();
        while(e.hasMoreElements()){
            toDelete.add(e.nextElement());
        }

        for(String s : toDelete) {
            keyStore.deleteEntry(s);
        }
        // keyStore.store(null);

    } catch (KeyStoreException | IOException | NoSuchAlgorithmException | CertificateException e) {           
        Log.wtf(TAG, e);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有调用keyStore.store(null),则此函数将成功退出,但是密钥存储区中仍然有一些密钥。

如果我拨打电话,则会引发此异常:

E/AndroidRuntime:  Caused by: java.lang.UnsupportedOperationException
E/AndroidRuntime:     at java.security.KeyStoreSpi.engineStore(KeyStoreSpi.java:256)
E/AndroidRuntime:     at java.security.KeyStore.store(KeyStore.java:565)
E/AndroidRuntime:     at com.mycompany.myapp.LocalKeyStore.resetKeyStore(LocalKeyStore.java:235)
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激

java android

7
推荐指数
0
解决办法
422
查看次数