|
J4amieC wrote: Tried concatenating a string and an int recently?
Yes, when testing his code - I wouldn't have done it, but when writing to the console it compiles and works. Try the code below!
static void Main()
{
int i = 5;
string s = "Test";
Console.WriteLine(s + i);
Console.ReadKey();
}
Dave
|
|
|
|
|
Hi Alex501
can you tell me here error message also.
thanks
|
|
|
|
|
I've got a small C# .NET application that manages users and logons for my company's website (for use by the customer service department). Now, I need to extend this program to be able to point to the production or test databases (for Q.A. testers). My problem is that it is built on a pretty hefty set of DLLs (that serve as the Data Access layer for this and several other related projects) that pull connection string from the .config file.
This is probably bad design, but I couldn't figure out how else to do it. Anyway, now I'm desperately searching for some way to deploy the project with two EXEs and two app.config files.
ClickOnce can allow me to deploy multiple executables, but that (as far as I can tell) requires a second VS project and so i would need to maintain the exact same code in two different spots instead of one (YUCK!). Unfortunately I don't know anything about MSI installers to know if they can help me.
Any pointers would be appreciated (about how to fix my design, certainly, but more so how to get past this last hurdle... as a rewrite of my DAL would take far more time than I have). Thanks in advance.
KBTibbs
|
|
|
|
|
KBTibbs,
Why not just have a flag in your config file that says which connection string to get? I dont understand why you'd need another app just because you want to add another connection string to the config file.
Regards,
Gareth.
|
|
|
|
|
I can add as many connection strings as I want, naturally... but the DLL's don't know the context of their operation, so to access those additional connection strings every method would need to be passed either the connection string name, or some known value so it could choose the appropriate connection string. An overhaul of that much code would take more time than I have.
It was bad design, I get that... but often times as requirements grow we have to deal with poor decisions we're stuck with, yes?
|
|
|
|
|
I'm not sure about what you're trying to achieve here but how about creating a post-build or pre-build batch script which modifies the connection strings for you? Thus creating one install for production and one for test? After all ClickOnce doesn't package the files in anyway, just changes the extensions.
|
|
|
|
|
What I'm trying to achieve is two links under the application's Start Menu entry. One link opens the program connecting to the production database, the other link to the test database.
If there were some way I could do this with a single executable, I'd love to hear how.
But as I see it, two executables (of non-duplicated code) with two app.config files is the only way to do it.
|
|
|
|
|
Personally I use NSIS for writing installers but then you'd have the hassle of automatic updates etc. Perhaps WIX would be able to perform the updates? Not sure. I'll see what I can remember, there are some articles here which provide auto-update functionality for your program.
|
|
|
|
|
Automatic updates shouldn't be a problem... I don't foresee more development on this project, but even if there is, the old fashioned installation roll out is certainly acceptable (this is only for in-house use, and we're a pretty small shop).
|
|
|
|
|
Then just use an install system like NSIS. That's very powerful and free but only has a few designer like environments. There are others that will do the same job but easier initially.
|
|
|
|
|
If i have a Namespace as a string is there are any framework support to find the assembly file with the most closely matching name.
For example: If i have the assemblies x.DLL and X.Y.DLL. Then given the Namespace string 'X.Y.Z' - the 'X.Y.DLL' would be adopted.
Thanks
|
|
|
|
|
Nope. You'd have to build this yourself.
It shouldn't be too hard. From your description, it could be done just by getting filenames from a search of a directory structure and comparing themn to the search key using a RegEx.
|
|
|
|
|
Hi guys,
Please help! I have a windows service when started it goes out and retrieves a schedule from the database and stores it into a string array. Once the schedule is retrieved. I start my timer which calls the following code:
Every 45 seconds I am running MonitorFunc which checks whether the schedule is now to run a query. The question I have is whether the code section below is a good process that I am going by. Please help.
try
{
m_tMonitor = new TD.Timer(new TD.TimerCallback(MonitorFunc),1, 0,45000);//45 sec
if(m_sServerAddr==string.Empty)
{
m_sServerAddr=Dns.GetHostName();
}
if(m_nPort==-1)
{
m_nPort=1024;
}
IPHostEntry hostEntry=Dns.Resolve(m_sServerAddr);
IPAddress ipAddress = hostEntry.AddressList[0];
IPEndPoint ipEndPoint = new IPEndPoint(ipAddress,m_nPort);
m_svSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
m_svSocket.Bind(ipEndPoint);
m_svSocket.Listen(10);
while(true)
{
Socket rtSocket=m_svSocket.Accept();
if(rtSocket.Connected)
{
TD.WaitCallback myCallBack = new TD.WaitCallback(ProcessClientRequest);
TD.ThreadPool.QueueUserWorkItem(myCallBack,rtSocket);
}
}
}
catch(Exception ex)
{
m_svSocket.Close();
m_tMonitor.Dispose();
}
Sameer
|
|
|
|
|
I'm suffering some issues at deployment time which seem to relate to various dlls etc not being available.
Is their a CLR version of the old depends tool that used to ship with visual studio? ie a tool that shows me which dependencies are broken rather than what the mainfest says the dependencies are?
Thanks
Russell
|
|
|
|
|
Reflector? It allows you to view the references, normally if it's in the path or the GAC then it can find it.
|
|
|
|
|
You don't need it. There is a Assembly Binding Log Viewer tool that tells you what happened.
In the MSDN docs, lookup "Fuslogvw.exe", or just Google for it.
|
|
|
|
|
brilliant thank you.
I'd completely forgotten about fuslog
|
|
|
|
|
I need to bind a textbox's text to an xmlElement's value.
<br />
TextBox tb;<br />
XmlNode nodeToBind;<br />
tb.DataBindings.Add("Text", nodeToBind, "Value");<br />
results in an ArgumentException (Property or Column for the datasource cannot be bound. parametername: dataMember).
any hints?
|
|
|
|
|
Hello,
I'm building an application which has an option to play a sound with the extern PlaySound method.
With the code below the PlaySound method is working
<br />
string fileName = @"C:\Documents and Settings\User\My documents\Visual Studio 2005\Projects\Alarm\Alarm\Resources\attention.wav";<br />
PlaySound(fileName, 0, 1);<br />
If I execute the program on an other computer the path will be different. So I need an function that will get the .wav file from my folder Resources. The standard way to access an embedded resource is to use the Assembly class's GetManifestResource* methods. But I can't get it to work properly.
This is proberly a very stupid question but i'm just a beginner and can't figure it out.
Can someone please help me out?
Thanks
|
|
|
|
|
JustRonald wrote: But I can't get it to work properly.
JustRonald wrote: but i'm just a beginner and can't figure it out.
If you are getting some error message you need to post that along with the relevant code. Read the first post in the forum titled "How to get an answer to your question".
led mike
|
|
|
|
|
There's an example here[^]
The only problem I've found is you need to specify the file's location as
"yournamespace.Resources.filename.ext"
e.g.
GetManifestResourceStream("My_App.Resources.new.wav");
Edit: You needto use Winmm.dll not Coredll.dll
Improved solution/example below
Dave
modified on Monday, March 3, 2008 2:51 PM
|
|
|
|
|
|
I thought this was something interesting that I could maybe use so I've had a play and the example below works (ringin.wav from C:\Windows\Media added to resources and BuildAction property set to Embedded Resource).
using System;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Load += new EventHandler(Form1_Load);
}
void Form1_Load(object sender, EventArgs e)
{
Stream wave = Assembly.GetExecutingAssembly().
GetManifestResourceStream(
MethodBase.GetCurrentMethod().
DeclaringType.Namespace + ".Resources." + "ringin.wav");
Byte[] waveData = new Byte[wave.Length];
wave.Read(waveData, 0, (int)wave.Length);
PlaySound(waveData, IntPtr.Zero, SoundFlags.SND_ASYNC | SoundFlags.SND_MEMORY);
}
enum SoundFlags
{
SND_SYNC = 0x0000,
SND_ASYNC = 0x0001,
SND_MEMORY = 0x0004,
SND_NODEFAULT = 0x0002,
SND_LOOP = 0x0008,
SND_NOSTOP = 0x0010,
SND_NOWAIT = 0x00002000,
SND_FILENAME = 0x00020000,
SND_RESOURCE = 0x00040004
}
[DllImport("winmm.dll")]
static extern bool PlaySound(byte[] pszSound, IntPtr hmod, SoundFlags fdwSound);
}
}
I've used SoundFlags.SND_ASYNC as it's in the load event but if you want it in FormClosing for example use SoundFlags.SND_SYNC
Dave
|
|
|
|
|
Hi Ronald,
there are some ways to solve your problem:
1. you can distribute your wav file in a specific subfolder of your application, e.g. Sounds. Then you just set the filename variable to the following value:
string filename = Application.StartupPath + @"Sounds\attention.wav";
Don't forget to include using System.Windows.Forms. or type the namespace with the Application.StartupPath
2. You add the audio file as manifest into your exe. Then you need to call the following function:
System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(typeof(Program), "attention.wav")
Note that you get a System.IO.Stream , so maybe need to save it in a temporary file and then call your PlaySound method (I don't know if your function supports a stream object as a parameter)
So, these are the ways, I retrieved quickly from my mind at 23:17 (German time)
PS: In the second solution I wrote typeof(Program). Program is a class generated by VisualStudio when you create a new project, so I used this here
I hope I could help you
_____________________________
The force of .NET is with me!
|
|
|
|
|
Does anyone know/have any control like calender, but only show month and year. So the user only need to select the month and date. I'm in a hurry and don't want to create my own control. tHanks.
|
|
|
|