小编Ani*_*oel的帖子

简化c#中的设置和部署

我已经制作了一个应用程序,它会不断更新.所以每次发生变化时,我都会一次又一次地将它的新构建包含到设置和部署程序中.有没有办法简化程序?要添加的文件数量是静态的,存在于文件夹中.我听说我们可以用c#编写安装程序类,我的要求是否与它有任何关系?

我认为ClickOnce不符合我的要求,因为我第一次希望它像安装程序包一样运行,因为它有一些软件包和一些设置需要在安装时在用户的机器上实现.可以点击一次帮助我吗?此外,我想以管理员身份运行我的应用程序,它引用了许多外部DLL文件.那么它有助于我的目的吗?

我终于使用clickonce部署完成了它.我使用内容文件来标记我想要复制到目标计算机的所有文件并使用clickonce部署.然后我修改了我的程序启动的方式,这样我就可以启动安装程序脚本,我只想在应用程序第一次运行时运行.此外,我在IIS上托管它,并且必须更改许多MIME类型并添加新的以便下载到Internet上工作

c# installer

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

clickonce相同的发布版本但程序集版本不同,更新没有发生

我已经部署了一个clickonce应用程序,在我的应用程序中我有10个外部dll.由于我的dll文件中的代码不断变化,并且很难重新分发,因此我采用了clickonce部署策略.但我想知道一件事,如果我对其中一个dll文件进行更改并将其汇编版本从1.0.0.0升级到1.0.0.1,但不更改发布版本,它仍然是1.0.0.0.此外,我已将更新设置设置为应用程序加载之前.我重新运行了安装部署,但它没有运行更新的程序集.怎么了?我正在使用VS2008和C#.NET 2.0

c# deployment clickonce

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

使用control.begininvoke后,UI仍然没有响应

我做了一个C#winforms应用程序.现在我有一个有很多按钮的表单,它调用了大量的数字运算函数,其输出我在文本框中更新.我调用textbox.begininvoke()方法,我将委托传递给更新文本框中文本的函数,但是当文本很大时,表单没有响应,因为我无法单击取消按钮.是不是有任何方式使整个表单保持响应,并且更新也不断发生.我必须向用户显示数据,因为它即将到来,我无法缓冲整个事情并最终显示.我还尝试实现自己的缓冲区并以特定的时间间隔显示数据,这对于少量文本很有用,但是大量的UI只是没有响应.任何帮助?谢谢

更新问题是因为出现了一些混淆

  • 我在一个单独的线程上调用了数字运算功能.
  • 只要数据到达以更新文本框,该数字运算函数就会调用control.begininvoke函数
  • 我的UI得到显示,我看到输出即将来临,但是当数据量巨大时,我无法做任何其他活动,尽管我仍然可以看到UI

c# begininvoke

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

在c#中使用windows应用程序执行http方法

有许多站点在表单提交时调用脚本并使用HTTP POST或GET传递参数,使用Web调试器我已经找到了传递的参数.现在我希望通过我在C#中的Windows应用程序做同样的事情.我怎样才能实现这样的功能?

我目前在C#中使用HttpWebRequest和HttpWebResponse类.但这是一个痛苦,因为我必须为我尝试加载和工作的每个页面编写显式代码.例如,我正在尝试将用户名和密码传递到php页面并获取响应,该响应将发送cookie和页面作为回报,基于此我确定用户是否已登录.

HttpWebRequest loginreq = createreq("http://www.indyarocks.com/mobile/index.php");
                String logintext = "username=" + TxtUsrname.Text + "&pass=" + TxtPasswd.Password + "&button.x=0&button.y=0";
                loginreq.ContentLength = logintext.Length;
                StreamWriter writerequest = new StreamWriter(loginreq.GetRequestStream());
                writerequest.Write(logintext);
                writerequest.Close();
                HttpWebResponse getloginpageresponse = (HttpWebResponse)loginreq.GetResponse();
                cookie = getloginpageresponse.Cookies[0];
                BinaryFormatter bf1 = new BinaryFormatter();
                Stream f1 = new FileStream("E:\\cookie.dat", FileMode.OpenOrCreate);
                bf1.Serialize(f1, cookie);
                f1.Close();

                string nexturl = getloginpageresponse.Headers[HttpResponseHeader.Location];
                StreamReader readresponse = new StreamReader(getloginpageresponse.GetResponseStream());
                if (nexturl == "p_mprofile.php")
                {
                    MessageBox.Show("Login Successful");
                    GrpMsg.IsEnabled = true;
                }
                else if (nexturl == "index.php?msg=1")
                {
                    MessageBox.Show("Invalid Credentials Login again"); …
Run Code Online (Sandbox Code Playgroud)

c# windows httpwebrequest httpwebresponse

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

我可以做$ bar ="我的名字是$ bar"; 在asp.net中使用C#?

我现在有使用asp.net和php的经验.asp集成和丰富的outofbox功能以及C#的强大功能.然而,在使用php一段时间后,我遇到了一个漂亮的功能,我希望在asp.net中

在php中我们可以使用这样的变量

$bar = "My name is $bar and my pet's name is $pet_name";  
Run Code Online (Sandbox Code Playgroud)

如果我们不得不使用c#在asp.net中做同样的事情,我可能要写

string str - "my name is " + bar + " and my pet's name is " + pet_name
Run Code Online (Sandbox Code Playgroud)

假设bar和pet_name已经声明,不能有一个功能,我可以表示像php这样的变量,不必通过附加多个字符串来打扰?

asp.net string variables

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

在c#中从同一个流中多次读取

我想多次阅读我的程序的输出.有些事情,如果我通过X我得到输出,我显示它,然后再次,如果我通过Y我得到输出,我显示它.没有重新启动过程.尝试它我已经制定了ac程序

#include<stdio.h>
int main()
{
    int i;
    int j;
while(scanf("%d", &i))
{
    for(j = 0; j<=i;j++)
    printf("%d\n",j);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我正在用C#进行插入,当我在文本框中输入文本时,它通过重定向standardinput(一个streamwriter)传递给程序并读取输出我称之为standardoutput(一个streamreader).readtoend() .

但这对我不起作用.因为它进入等待状态直到流返回一些指示告诉结束已被读取.

我怎么能做到这样的事情?

我尝试了异步读取,我调用了beginoutputread方法,但后来我不知道读取何时完成!有一种方法可以让我在原始程序中添加一个标记,以指示当前输入的输出结束.有没有其他方法让我实现它?

c# process

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

windbg反汇编函数命令(uf)需要一些格式化

在附加notepad.exe命令后,我在windbg中执行了一个uf命令,这是uf记事本!WinMain我得到了以下输出

0:000> uf notepad!WinMain
notepad!WinMain:
0021138d mov     edi,edi
0021138f push    ebp
00211390 mov     ebp,esp
00211392 sub     esp,1Ch
00211395 push    esi
00211396 push    edi
00211397 push    6
002113c8 test    eax,eax
002113ca jl      notepad!WinMain+0x118 (00211c93)

notepad!WinMain+0x43:
002113d0 push    ebx
002113d1 push    dword ptr [ebp+14h]
002113d4 push    edi
002113d5 call    notepad!SkipProgramName (00213170)
002113e5 je      notepad!WinMain+0x10e (00211ca9)

notepad!WinMain+0x5e:
002113eb push    esi
002113ec push    esi
002113ed call    dword ptr [notepad!_imp__GetCurrentProcessId (00211084)]
Run Code Online (Sandbox Code Playgroud)

如果您在每次跳转指令后发现它会创建一个新的块

002113ca jl      notepad!WinMain+0x118 (00211c93)

notepad!WinMain+0x43:
Run Code Online (Sandbox Code Playgroud)

并在

002113e5 je      notepad!WinMain+0x10e (00211ca9)

notepad!WinMain+0x5e:
Run Code Online (Sandbox Code Playgroud)

所以我想知道WinDbg中的一个设置,我可以省略在每次跳转时为功能反汇编创建新块.为什么我不能像U命令那样获得输出?

所以我正在寻找这样的选择 …

windbg

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

什么是一个很好的正则表达式从"25 10a 36 10b 30"中提取纯数字

我需要一个正则表达式,我将只返回25,36,30

25 10a 36 10b 30

因为它们是序列中唯一的纯数字.

我试过这个,但它对我不起作用:

(^|[ ])\d+|($|[ ]) 
Run Code Online (Sandbox Code Playgroud)

有什么建议?

.net c# regex

0
推荐指数
1
解决办法
249
查看次数

使用cl.exe(Visual Studio 2008)为此cpp代码编译错误

我在这段代码中遇到编译错误

    #include<iostream>
    #include<cstdio>
    #include<string>
    using namespace std;
    void main(int argc,char *argv[])
    {
        int i;
        for(i = 0;i<10;i++)
           fprintf(cout,"%d\n",i);
        fprintf(cout,"abc:\n");
        string s;
        cin>>s;
        if(s == "resume") { 
            for(i = 0;i<10;i++)
            fprintf(cout,"%d\n",i);
        }
   }
Run Code Online (Sandbox Code Playgroud)

Microsoft(R)32位C/C++优化编译器版本15.00.21022.08(适用于80x86)版权所有(C)Microsoft Corporation.版权所有.

try.cpp C:\ Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342):警告C 4530:使用了C++异常处理程序,但未启用展开语义.指定/ EHsc

try.cpp(9):错误C2664:'fprintf':无法将参数1从'std :: ostr eam'转换为'FILE*'没有可用于执行此转换的用户定义转换运算符,或者运算符不能叫做

try.cpp(10):错误C2664:'fprintf':无法将参数1从'std :: ost ream'转换为'FILE*'没有可用于执行此转换的用户定义转换运算符,或者运算符不能叫做

try.cpp(16):错误C2664:'fprintf':无法将参数1从'std :: ost ream'转换为'FILE*'没有可用于执行此转换的用户定义转换运算符,或者运算符不能叫做

怎么了?

c++ compiler-construction visual-studio

0
推荐指数
1
解决办法
2233
查看次数

C语言中的Socket programmimg,需要示例代码和教程

我想在C中进行套接字编程.客户端和服务器正在交换消息.我有我的示例代码,但我想要一些精心设计的链接和插件编程C的教程,以便我可以编写有效且无错误的代码.我将使用WinSock库而不是Linux.有帮助吗?

c sockets winsock

0
推荐指数
1
解决办法
1027
查看次数

根据c#中的条件为枚举指定枚举值

我有一个课,并在其中声明了一个枚举

public enum file_type {readonly, readwrite, system}
Run Code Online (Sandbox Code Playgroud)

现在基于我想要将enum file_type设置为类似值的条件

if("file is markedreadonly")
   file_type = readonly;
Run Code Online (Sandbox Code Playgroud)

是不是可以在c#中这样做

c# enums

0
推荐指数
1
解决办法
2759
查看次数