我搜索了一下,但没有找到满意的答案,所以我想听听你对此的看法.
我有几个工具,我必须不时更新和部署到几个服务器.源在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)
我能追求的是什么,我将如何实现它?我应该改为寻找解决这个问题的其他方法吗?
升级到最新版本的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) 有没有办法在Mongrel运行时重新启动Rails应用程序(例如,当您更改了插件/配置文件时).或者快速重启Mongrel.Mongrel给出了这些提示,但你怎么做?
**信号准备好了.TERM =>停止.USR2 =>重启.INT =>停止(不重启).
**Rails信号已注册.HUP =>重新加载(不重启).它可能不会很好.
我在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浏览器中留下了一个空白页面,这是次要但不幸的.
我已经在我们的 iOS 应用程序中实现了对 Apple 从消息中自动填充 SMS 一次性代码的支持。正如所记录的那样,这很简单 - 您只需在 UITextField 上将类型设置为“一次性代码”即可。
Android(通过 Google Play 服务)具有更强大的 SMS 检索器 API,并且可以接管整个过程,因此用户甚至不需要按任何类型的自动填充按钮或查看键盘
https://developers.google.com/identity/sms-retriever/overview
问题是,这需要在服务器端更改以包含应用程序哈希,而且还有很多工作要做。我模糊地记得在一些 Android 发行说明中看到过类似 iOS 自动填充键盘的东西,但我找不到它,所以这也许是我的想象。
除了 SMS 检索器 API(或需要完全权限才能简单地读取所有 SMS 消息)之外,android 上还有其他任何东西吗?或者这是Android上最好的前进方式?
谢谢
猎户座
您是否始终遵循将分支,标签和主干目录放在Subversion存储库顶层的惯例?最近,我已经停止了打扰,并没有发生任何不好的事情(还)!
如果需要创建目录树,应该可以移动目录树.我以后会惹麻烦吗?
我有一个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与多层应用程序的经验,我将非常感激.
谢谢,猎户座.
我有一个WPF应用程序(.NET 4),它有一个主窗口,在主窗口内部显示许多较小的窗口UserControls.用户执行的各种动作导致UserControls显示的动作被具有不同数据的不同其他控件替换.
但是,在切换这些控件时,我遇到了性能问题.在加载控件时,WPF调度程序线程转到100%CPU.在较旧的计算机上,或者控件数量较多时,这可能会导致应用程序锁定长达30秒!
分析表明几乎所有这些CPU时间花在调用InitializeComponent所有不同的各种方法上UserControls- 没有一个控件看起来比其他任何方法差得多,它们似乎都需要0.2到0.5秒(在我的开发机器上快速处理器和良好的图形卡).
据我所知,InitializeComponentWPF实际上将已编译的xaml加载到内存中.
我在这里做什么都不知所措.我想在后台线程上预先初始化东西,但是必须在调度程序线程上创建和使用所有WPF控件,所以我认为这不可行.
否则它看起来像我唯一的选择是删除我的所有xaml?
任何帮助将不胜感激
我想做这样的事情:
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?
我无法从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)
任何帮助,将不胜感激
android ×3
c# ×2
svn ×2
.net ×1
async-await ×1
java ×1
mongrel ×1
performance ×1
sms ×1
tags ×1
tortoisesvn ×1
url-scheme ×1
winsxs ×1
wpf ×1