I am an experienced ASP.NET developer and familiar with Visual Studio and IIS. But I'd like to deploy ASP.NET applications to Mac OS X using Mono. I've done a LOT of searching on the web and can't a simple straight forward way to deploy a site on a Mac. Everything I've found does NOT give the whole picture.
I've downloaded the current Mono release (3.2.4) from http://www.go-mono.com/mono-downloads/download.html. But I don't think the installation package is complete. For example, I can't find any mod_mono compiled binaries. The mod_mono.conf file is supposed to reference mod_mono.so, but I can NOT find installed anywhere from the installation package. I found the mod_mono source at on a link from the above page, but don't know how to compile and deploy.
Also creating the mod_mono.conf is another issue. There is a configuration tool at http://go-mono.com/config-mod-mono/Default.aspx, but it doesn't work in my setup.
The only success I've had, is with the xsp server tool. I think it is meant for testing and NOT deployment.
BTW, I am running OS X Mavericks 10.9.1. I only want to deploy to Mono. The development is done under Windows with Visual Studio.
Could someone guide me? I am obviously missing some steps.
Related
I hope this is no duplicate but I couldn't find any related topic. Every developer knows the problem. I create my app, deploy it and on some other machine it does not run because some dependency is missing. Often those dependecies are part of the workloads installed along with Visual Studio or some SDKs.
My question now is if there is a way to test my app on my dev machine like it had not installed SDKs and VS? Basically I want the app to only consider dependencies I explicitely specified through project references, nuget packages or locally copied files. Or in short: every dependency should be part of the app's deployment target folder.
Of course some really basic OS-dependent stuff needs to be used as well but I don't want the app to use stuff like OpenAL, GLFW, Windows SDK or similiar things just because I have installed it on my machine beforehand.
I hope you can understand what I mean. So I basically need some sandbox. I know there are things like VMs, docker, etc but I would like to use this as I run my app from Visual Studio. So if I hit F5 I want the app to ignore globally installed stuff at all.
I work with VS 2022. Thanks for advice.
You could use a continuous integration system in order to build (from scratch), publish and test on a fixed known build agent configuration. I used Teamcity.
You could use a Virtual Machine or a docker image as agent PC.
Moreover you can configure more agents with different possible configurations.
As a general rule of thumb, you can reference Nuget packages instead of assemblies in the GAC. This way, they will be copied to your application's bin folder.
You can also use .NET Application Publishing to create a deployable folder with your application. If you're targeting .NET Core, and the target machine may not have .NET Core installed or you don't know what version it will have, you can create a self contained release which will include the .NET Core binaries in the release.
See https://learn.microsoft.com/en-us/dotnet/core/deploying/
We are using that version on Amazon. I'm not sure if there is any good solution to upgrade Windows without reinstalling everything.
Looks like it's not possible to install Microsoft Build Tools 2015 on that Windows version. Can it be "hacked"? This is not a production server so I don't care if it would be not fully secure.
Another workaround I think could be using mono. I installed the latest mono version but build agent doesn't detect it. How to fix it? Will it work if I'm going to run that mono-compiled app on MS .NET? Can mono compiler handle mixed-mode assembly references (we don't need to compile them, just use)?
Or can you suggest anything another?
Its an Asp.net website . Running good on local development system . VS2010 and .NET 4 . When uploading to web server it throws an assembly could not be loaded error in my web.config file .
I sort it on google by changing framework from 3.5 to 4 will arise this error . My doubt is there any way to lock or persist the integrity of an assembly file through out the .NET versions .
My hosting server URL : http://ananth7453-001-site1.mywindowshosting.com/
Thanks for your time
VSLangProj80 is installed as part of Visual Studio which is why your site works on your development machine. Copy the DLL to your project folder and then replace the reference in Visual Studio with the copy.
On my machine VSLangProj80 is located at C:\Program Files (x86)\Common Files\Microsoft Shared\MSEnv\PublicAssemblies\VSLangProj80.dll
I want to share the solution I encountered as I have the same issue encountered. Over the years, our web server is installed with different Visual Studio programs, such as Shell (integrated mode) and Tools for Applications 2.0 ENU. There's also Tools for Office Runtime. It took us a while to isolate which of these installs conflicts to the application we are trying to install.
We found out that our application has the latest version of VSLangProj80.dll and the one in our server is using older version. Without changing our build since it is working on our UAT environment, we manage to un-install the Tools for Application 2.0 ENU. Removing this one out of our production server resolved this issue.
I have developed a C# winform app in VS 2012, but when I deploy it to another machine, it's exe file does not launch until and unless the machine has VS 2012 installed in it. Initially I thought there was a problem with deployment, but I have tried all methods, by simply transferring the bin folder to creating a setup project using installShield, I tried deploying a simple app which was successful without having to install VS 2012. Could someone please give me the reason behind this dependency of my app with VS 2012, and how to get rid of it? I cannot afford to install a VS 2012 on every machine that the software needs to deployed to. Thank you so much.
This is all about which .Net Framework is installed on the machine.
For Instance, VS2012 will run on .Net Framework 4.5, but the computer your trying to run this software on maybe running on an earlier version.
If any of the assemblies that your adding to your solution are built on a later version of the .Net framework then it will be incompatible on the users machine.
change Your project Debug mode to Release Mode Then Run The App then Go to >Bin > Release Folder then u can Find Exc Setup !! Have Fun with Code !!
Probably your app depends on some assembly that is installed along with VS. You can use Dependency Walker to find out exactly what. On second thought, since this is a .Net application your dependencies should be limited to .Net assemblies and the .Net framework - you could find out exactly what you're missing on the target machine with dotPeek.
I wrote an application with .Net4 and C# and also deploy it to user system with install shield.
After I changed few lines of code, one of my Winforms automatically disposes** without error in client system which has .Net4 but does not have Visual Studio installed.
All prerequisites are installed and it used to work fine...
If I install Visual Studio in client's system, it will work perfectly.
I tried to debug it but visual studio does not find any exception.
Please help
Form may contain components that are not present in client's system.
It depends upon way in which you are deploying your application.
General way is:
Install framework.
Copy-Paste debug folder to client's system.
Bring shortcut to desktop.
OR
Simply publish the application.
Copy paste publish folder to cliet's System.
Execute publishing setup.
Bring shortcut to desktop.
It works in this way.
Hope its helpful
You wrote on the user machine .Net 4 Client framework is installed. Try to uninstall it and install full .Net 4 framework (here is a link to MS download site).
Those 2 lines that you have added may now reference the features that are available only in full .Net 4 installation. (Unfortunately you did not post those lines so we can only guess what the problem is).
With Visual Studio full .Net 4 is installed and maybe because of this your app starts to work after VS installation.
See Difference between .NET 4 Client Profile and Full Framework download for more details.