我已经使用了几个月的ClickOnce应用程序,但最近开始在部署最新版本时遇到错误.在这个最新版本中,我添加了一个我以前没用过的DLL的引用(FTD2XX_NET.dll,如果它是相关的),并怀疑这与问题有关,但我无法弄清楚如何解决它.
正在部署的实际项目引用了另一个库项目,该项目引用了DLL(它引用了其他DLL,但它已经工作了几个月但它们没有更改).在这些 线程之后,我尝试删除我的"Local Settings/Apps"文件夹并重新启动多次,以及重新创建项目并部署到其他位置.多台计算机上存在错误,因此我不怀疑它的用户配置文件损坏.这是我给出的完整错误:
PLATFORM VERSION INFO
Windows : 5.1.2600.196608 (Win32NT)
Common Language Runtime : 4.0.30319.261
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.261 (RTMGDR.030319-2600)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url : file://nt_server/prog/Publish/Digipot%20Utility/Digipot%20Utility.application
Deployment Provider url : file://nt_server/Prog/Publish/Digipot%20Utility/Digipot%20Utility.application
Application url : file://nt_server/prog/Publish/Digipot%20Utility/Application%20Files/Digipot%20Utility_1_0_0_72/Digipot%20Utility.exe.manifest
IDENTITIES
Deployment Identity : Digipot Utility.application, Version=1.0.0.72, Culture=neutral, PublicKeyToken=1e3769a7c667fbc1, processorArchitecture=msil
Application Identity : Digipot Utility.exe, Version=1.0.0.72, Culture=neutral, PublicKeyToken=1e3769a7c667fbc1, processorArchitecture=msil, type=win32
APPLICATION SUMMARY
* Installable application.
ERROR SUMMARY
Below is a …
Run Code Online (Sandbox Code Playgroud) 我在回答另一个问题时遇到了这个问题.我试图诊断哪个代码更改对速度有更大的影响.我在for循环中使用了一个布尔标志来在使用辅助方法构建Color之间切换.
有趣的行为是,当我决定哪一个更快并删除了如果代码的速度放大了10倍.以前需要140ms,之后只需13ms.我应该只从循环中删除大约7个计算.为什么速度如此急剧增加?
慢代码:(运行时间为141毫秒*参见编辑2helperMethods
)
public static void applyAlphaGetPixels(Bitmap b, Bitmap bAlpha, boolean helperMethods) {
int w = b.getWidth();
int h = b.getHeight();
int[] colorPixels = new int[w*h];
int[] alphaPixels = new int[w*h];
b.getPixels(colorPixels, 0, w, 0, 0, w, h);
bAlpha.getPixels(alphaPixels, 0, w, 0, 0, w, h);
for(int j = 0; j < colorPixels.length;j++){
if(helperMethods){
colorPixels[j] = Color.argb(Color.alpha(alphaPixels[j]), Color.red(colorPixels[j]), Color.green(colorPixels[j]), Color.blue(colorPixels[j]));
} else colorPixels[j] = alphaPixels[j] | (0x00FFFFFF & colorPixels[j]);
}
b.setPixels(colorPixels, …
Run Code Online (Sandbox Code Playgroud) 我有一个我在多个ClickOnce应用程序中使用的库.如果这个库出错,我想把错误写入windows EventLog
.
我发现了一篇知识库文章,但似乎需要管理员权限来搜索源代码.特别是在尝试搜索Security
事件日志时会发生窒息.
有没有办法解决这个问题并在ClickOnce应用程序中写入事件日志?我看到一个人试图写一个已知来源,但他们似乎无法找到一直可用的来源.
编辑:
根据这里的答案,我创建了一个程序,该程序包含在我的应用程序中,我可以在第一次运行时运行以设置可以获得管理员权限的事件源.但是一旦创建了源代码,我似乎仍然无法写入它.
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
if (!EventLog.SourceExists("ATE"))
{
EventLog.CreateEventSource("ATE", "Application");
}
}
Run Code Online (Sandbox Code Playgroud)
是否正确创建了一个源(相当于Yannick Blondeau提供的注册表编辑).当我在非提升的应用程序中写入源时,我收到一个新的错误,但它仍然无法正常工作.新错误是:
Cannot open log for source 'ATE'. You may not have write access.
编辑2:
我现在一直试图让它通过CustomSD键上的注册表编辑工作.我尝试添加(A ;; 0x7 ;;; AU)为经过身份验证的用户提供完全访问权限,但似乎没有任何效果.
我有一个数据库,其中包含存储在JSON列中的数据数组.我需要找到JSON数组中特定位置具有空值的所有值.虽然使用JSON_EXTRACT提取数据似乎微不足道,但我与null的比较都没有起作用,所有这些都声称值为null.
这是我应该告诉的示例代码:
SELECT JSON_EXTRACT(`COLUMNS_HEADERS`, '$[1]') , (JSON_EXTRACT(`COLUMNS_HEADERS`, '$[1]') is null)
FROM ate.readings_columns_new;
Run Code Online (Sandbox Code Playgroud)
我的结果表的前几行看起来像这样:
null | 0
"INTERNALTEMPERATURE" | 0
"INPUT_VOLTAGE" | 0
null | 0
null | 0
"AH1" | 0
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我能想到的每一个比较,它们都会产生0:
(JSON_EXTRACT(`COLUMNS_HEADERS`, '$[1]') is null)
(JSON_EXTRACT(`COLUMNS_HEADERS`, '$[1]') <=> null)
ISNULL(JSON_EXTRACT(`COLUMNS_HEADERS`, '$[1]'))
(JSON_EXTRACT(`COLUMNS_HEADERS`, '$[1]') <=> 'null')
Run Code Online (Sandbox Code Playgroud)
是否有一些关键来比较从JSON_EXTRACT拉出的空值?
你好android/Java开发者,
当一个函数调用一个函数并且该函数调用另一个函数时,有多少调用(堆栈长度)会让我进入堆栈流量?有一般的经验法则吗?
我问的原因是因为我现在对于我的5玩家纸牌游戏来说效率更高(设计明智)
解决方案1:
for(int i=0;i<100;i++){
p1.play();
p2.play();
p3.play();
p4.play();
}
Run Code Online (Sandbox Code Playgroud)
解决方案2:
p1.play(); //where p1.play() calls p2.play() and so on until p4 calls p1 again.
// this will go on for 100 times
Run Code Online (Sandbox Code Playgroud)
我更喜欢解决方案2,所以如果发生崩溃,我可以看到从i = 0的p1到i = 100的p4的所有函数调用
但是对于解决方案1,堆栈要短得多但是当发生崩溃时我会在循环的开头看到一个被调用的函数play(),其中发生了崩溃
你有什么建议?我知道它有点2个问题,但它们非常相关
谢谢你们
我想将一个double
值解析成一个string
.我希望我的号码具有指定的位数(直到运行时才会知道).如果这个数字可以用数字的非零值表示,这就是我想要的.如果数字是这样的零,我希望用科学记数法表示.
一些例子会使这更清楚,这假设我想要3位数:
价值: .2367 输出: "0.23"
价值: .00367 输出: "3.67E-3"
价值: 22.3 输出: "22.3"
价值: 3364.0 输出: "3.36E3"
我的解决方案是使用ToString()方法和N
数字格式字符串,如果它导致零恢复到E
格式字符串,但这感觉就像重新发明轮子.有谁知道一个内置的方法来做到这一点?
我一直在做一些关于BLE和iBeacons的工作.目前我知道你可以将你的iPhone变成iBeacon但是我还没有看到任何有关Android手机是否可行的细节 - 特别是HTC One就像我得到的那样;)
有关此事的任何建议,细节或网站链接将不胜感激,
谢谢,
史蒂夫
我正在重写我的类上的equals函数并且我得到一个零点异常,尽管我在调试器的"watch"部分输入相同的代码时没有异常.
这是我的代码(与==
a 比较的是字符串或基本类型):
return this.workOrder == i.workOrder
&& this.upi == i.upi
&& this.testName == i.testName
&& BasicFunctions.ArraysEqual(this.testTrays, i.testTrays)
&& this.supplyVoltage == i.supplyVoltage
&& this.supplyAmperage == i.supplyAmperage
&& this.commandResults == null ? i.commandResults == null : this.commandResults.Equals(i.commandResults)
&& this.id == i.id;
Run Code Online (Sandbox Code Playgroud)
观察窗口中的视图:
比较commandResults
是唯一可能导致null异常的东西,正如你可以从代码中看到的那样,这个场景应该由三元运算符处理.不仅如此,但在失败的情况下,它应该永远不会到达该部分,因为该行应该在第一个假部分停止执行.怎么会发生这种情况?
编辑: 这里要求的是异常的细节(请注意,这已由ArrayEquals函数调用,并且异常不在列出的代码中使用的异常内)
System.NullReferenceException was unhandled
Message="Object reference not set to an instance of an object."
Source="ATE"
StackTrace:
at ATE.Network.TestLocationListener.TestClientInformation.Equals(Object obj) in C:\Users\jdudley\git\ATE\ATE\ATE\Network\TestLocationListener.cs:line 85
at ATE.BasicFunctions.ArraysEqual[T](T[] a1, T[] a2) in C:\Users\jdudley\git\ATE\ATE\ATE\BasicFunctions.cs:line 150
at ATE_Remote_Controller.Form1.remoteClient1_StatusUpdated(Object sender) …
Run Code Online (Sandbox Code Playgroud) 我有一系列应用程序引用我使用ClickOnce部署的单个库项目.这个库项目引用了几个库,用于数据处理和硬件接口.它们被标记为LocalCopy = False,并且在使用ClickOnce时默认情况下是"应用程序文件..."中的先决条件.
虽然这对大多数应用程序来说都是完美的,但并非所有应用程序都需要所有库 例如,仅用于查看数据的程序不需要硬件库.
遵循这个线程的逻辑我设置要排除的文件,因为我实际上不需要它们但得到错误"无法安装或运行应用程序.应用程序需要在全局程序集中安装程序集NationalInstruments.Common 8.20.306首先缓存(GAC)."
如果我将它们设置为包含应用程序将安装,但随后运行时会出现错误"应用程序无法启动.请联系应用程序供应商".如果我单击此对话框上的详细信息按钮,我会得到一个日志文件:
PLATFORM VERSION INFO
Windows : 5.1.2600.196608 (Win32NT)
Common Language Runtime : 2.0.50727.3623
System.Deployment.dll : 2.0.50727.3053 (netfxsp.050727-3000)
mscorwks.dll : 2.0.50727.3623 (GDR.050727-3600)
dfdll.dll : 2.0.50727.3053 (netfxsp.050727-3000)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url : file://nt_server/prog/Publish/ResultsLoader/ATE%20Results%20Loader.application
Deployment Provider url : file://nt_server/prog/Publish/ResultsLoader/ATE%20Results%20Loader.application
Application url : file://nt_server/prog/Publish/ResultsLoader/Application%20Files/ATE%20Results%20Loader_1_0_0_5/ATE%20Results%20Loader.exe.manifest
IDENTITIES
Deployment Identity : ATE Results Loader.application, Version=1.0.0.5, Culture=neutral, PublicKeyToken=67305960c2b2ce03, processorArchitecture=msil
Application Identity : ATE Results Loader.exe, Version=1.0.0.5, Culture=neutral, PublicKeyToken=67305960c2b2ce03, processorArchitecture=msil, type=win32
APPLICATION SUMMARY
* Installable application.
ERROR …
Run Code Online (Sandbox Code Playgroud) 出于某种原因,在我的控制台应用程序中,我无法运行我的finally块.我正在编写此代码来测试finally块的工作方式,因此非常简单:
static void Main()
{
int i = 0;
try
{
int j = 1 / i; // Generate a divide by 0 exception.
}
finally
{
Console.Out.WriteLine("Finished");
Console.In.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
c# ×6
android ×3
clickonce ×3
java ×2
deployment ×1
event-log ×1
ibeacon ×1
mysql ×1
performance ×1
try-finally ×1
vb.net ×1