我目前有一个应用程序在其标题窗口中显示内部版本号.这很好,除非对大多数用户没有任何意义,他们想知道他们是否拥有最新版本 - 他们倾向于将其称为"上周四",而不是构建1.0.8.4321.
计划是将构建日期放在那里 - 所以"应用程序构建于2009年10月21日".
我正在努力寻找一种程序化的方法来将构建日期作为文本字符串拉出来像这样使用.
对于内部版本号,我使用了:
Assembly.GetExecutingAssembly().GetName().Version.ToString()
Run Code Online (Sandbox Code Playgroud)
在确定了那些如何出现之后.
我想在编译日期(和时间,奖励积分)这样的东西.
这里的指针非常赞赏(如果合适的话,请原谅双关语),或更整洁的解决方案......
我正在尝试使用CSharpCodeProvider编译下面的代码.该文件已成功编译,但是当我单击生成的EXE文件时,我收到错误(Windows正在搜索此问题的解决方案)并且没有任何反应.
当我使用CSharpCodeProvider编译下面的代码时,我MySql.Data.dll使用以下代码行添加了作为嵌入式资源文件:
if (provider.Supports(GeneratorSupport.Resources))
cp.EmbeddedResources.Add("MySql.Data.dll");
Run Code Online (Sandbox Code Playgroud)
该文件已成功嵌入(因为我注意到文件大小增加).
在下面的代码中,我尝试提取嵌入的DLL文件并将其保存到System32,但下面的代码由于某种原因不起作用.
namespace ConsoleApplication1
{
class Program
{
public static void ExtractSaveResource(String filename, String location)
{
//Assembly assembly = Assembly.GetExecutingAssembly();
Assembly a = .Assembly.GetExecutingAssembly();
//Stream stream = assembly.GetManifestResourceStream("Installer.Properties.mydll.dll"); // or whatever
//string my_namespace = a.GetName().Name.ToString();
Stream resFilestream = a.GetManifestResourceStream(filename);
if (resFilestream != null)
{
BinaryReader br = new BinaryReader(resFilestream);
FileStream fs = new FileStream(location, FileMode.Create); // Say
BinaryWriter bw = new BinaryWriter(fs);
byte[] ba = new byte[resFilestream.Length];
resFilestream.Read(ba, 0, ba.Length);
bw.Write(ba);
br.Close();
bw.Close(); …Run Code Online (Sandbox Code Playgroud) 我有一个C#应用程序.我需要为该应用添加一个图标,所以我添加了一个图标资源.添加资源很顺利,但有没有办法使用我的(资源)图标作为表单图标而不添加额外的代码?当我尝试使用表单的设计时"图标"属性时,似乎我必须选择一个文件,但我想使用嵌入式图标...
有帮助吗?
我的意思是当用户启动我的应用程序(exe)时.我希望它直接在系统托盘中启动,而不显示窗口.像防病毒软件和下载管理器一样,它们默默地在系统托盘中启动和运行.
我想要相同的效果,当用户点击notifyIcon的contextmenustrip的"show"按钮时,只有应用程序应该显示GUI.
我正在使用它,但它没有用
private void Form_Load(object sender, EventArgs e)
{
this.Hide();
}
Run Code Online (Sandbox Code Playgroud)
可能我需要在其他没有GUI但具有notifyIcon和ContextMenuStrip的类中使用Main()函数,该选项将实例化GUI窗口类.对?
我在这篇文章之后将图像作为资源包括在内: 如何在.NET中创建和使用资源
我正在使用PDFSharp库来创建PDF.绘制图像的方法需要图像的路径.我如何获得路径Properties.Resources.Image?
或者还有另一种方法吗?
我正在开展一个项目,我正在广泛使用ResourceManager,这个问题在我脑海中浮现.我们可以在不使用ResourceManager的情况下从.resx文件中读取吗?我的意思是,还有另一种方式吗?
我在 FxCop 中违反了以下规定。当我对字符串进行硬编码时Console.WriteLine("Service Started");
方法“method()”将文字字符串作为对“Console.WriteLine(string)”的调用的参数“value”传递。从资源表中检索以下字符串:“Service Started”
所以我改变了如下类型的代码。
ResourceManager rm = new ResourceManager("Service Started", Assembly.GetExecutingAssembly());
string start = rm.GetString("Service Started");
Console.WriteLine(start);
Run Code Online (Sandbox Code Playgroud)
现在我没有收到 FxCop 违规。但是我在行中遇到了以下异常string start = rm.GetString("Service Started");
我该如何解决这个异常?
附加信息:找不到适用于指定文化或中性文化的任何资源。确保在编译时将“Service Started.resources”正确嵌入或链接到程序集“命名空间名称”中,或者确保所有所需的附属程序集都可加载且已完全签名。
我正在尝试使用我作为资源添加的图标作为按钮上的图像.我知道这是可能的,因为我可以通过设计师在其他项目中完成它.但是,我正在尝试使用代码执行此操作.我通过按照此问题的接受答案中的步骤将图标作为资源添加到我的项目中.资源已命名CancelButtonIcon.
现在,我正在尝试使用以下代码将该图标添加为标准按钮上的图像:
this.CancelButton.Image = (System.Drawing.Image)Properties.Resources.CancelButtonIcon;
Run Code Online (Sandbox Code Playgroud)
但是,我收到一条错误消息:
Cannot convert type 'System.Drawing.Icon' to 'System.Drawing.Image'
Run Code Online (Sandbox Code Playgroud)
在我使用设计器时Visual Studio自动生成的代码中,它看起来像这样:
((System.Drawing.Image)(resources.GetObject("SaveButton.Image")));
Run Code Online (Sandbox Code Playgroud)
这是通过"属性"窗口手动添加资源的结果.如何将此图标资源转换为图像,以便可以在按钮上使用?通过设计器添加它不是一个选项(此按钮是以编程方式创建的,因此在设计器中不存在).
我创建了一些资源文件来保存字符串.我MessageBox通过直接指向一个名为的资源文件TestLocalResource和一个资源字符串来显示一个,该资源字符串ThisIsMyTest只需引用资源字符串,如下所示:
TestLocalResource.ThisIsMyTest
Run Code Online (Sandbox Code Playgroud)
现在这看起来确实有效.但这让我想知道通过这种方式引用资源字符串,我是否总是访问默认资源文件(例如TestLocalResource.resx)而不是其德语版本(例如TestLocalResource.de-DE.resx)?
相反,我必须使用ResourceManager吗?如果是这样,怎么ResourceManager知道当前的语言(文化)?我需要明确设置它吗?
这就是我认为我需要使用的方式ResourceManager:
ResourceManager resmgr =
new ResourceManager("MyApplication.MyResource", Assembly.GetExecutingAssembly());
Run Code Online (Sandbox Code Playgroud)
但我希望有一种方法可以更方便地访问本地化资源字符串.
我按照这里的说明如何在.NET中创建和使用资源
但是,当我做Properties.Resources.Name; 我得到"名称'属性'在当前上下文中不存在".它驱使我疯了bc我尝试了多种东西并用Google搜索,无法找到解决方案.
资源在我正在使用的同一个项目中.该项目是1表格.并且代码在Form1_Load中
我想创建一个字符串模板,其内容的一部分最近将完成
string myTemplete = "This is a template ,which depends on {1} and {2} and {3}"
Run Code Online (Sandbox Code Playgroud)
之后我有一些函数调用链,我从中收集数据
int arg1 = MyFunc1();
string arg2 = MyFunc2();
string arg3 = MyFunc3();
Run Code Online (Sandbox Code Playgroud)
//需要使用arg 1for {0},arg2 for {1},arg3for 填充myTemplete{2}
我该怎么做?我构建的模板很长,并且在许多地方使用,因此不想制作类似的东西
int arg1 = MyFunc1();
string arg2 = MyFunc2();
string arg3 = MyFunc3();
string myData = string.Format("This is a template ,which depends on {1} and {2} and {3}"
,arg1, arg2, arg3);
Run Code Online (Sandbox Code Playgroud)