I have a 64-bit InstallScript set up.
The only problem is figuring out what I uninstall set up the dll does not delete from system32 folder.
I can't find anything in the documentation that explains how to accomplish this task. I am using InstallShield 2011, thanks in advance for any help you can offer.
The SYSTEM32 folder is supposed to contain only permanent components that are never uninstalled. Not sure about InstallShield's implementation, but the regular MSI testsuite flags an error if you define a File that installs there and do not mark it Permanent.
Thus, I'd change to a different location.
Related
For my application, when I deployed in client OS. I see these DLL are missing(in the screenshot), can you please tell which software I need to install to make it work?
List of Software Installed-
I see .net is also installed, can you please tell what else I need to install for those missing DLLs.
I would suggest Run the sfc /scannow System File Checker command to replace a missing or corrupt copy of the DLL files. Refer this link
I try to run an ASPX page hosted on a Windows Server 2008 x86 through IIS 7.0, with .NET 4.0. I added an application, app1, to the Default Web Site of IIS, mapped to dir C:\toto\app1 which contains the Web.config file.
The error I have is:
Could not load file or assembly 'xxx.dll' or one of its dependencies, etc
and xxx.dll is a .NET DLL that wraps native C++ DLLs (they are the dependencies that fail to be loaded), all of them are located in C:\toto\app1\bin. I tried to modify the PATH env variable so that it contained the bin directory (yes, I know it's bad :-) ), but this did not work anyway.
I guess there should be something at IIS application level, but I could not see what... Could you please help ?
Many thanks !
EDIT: copying the native DLLs in C:\windows\system32 actually works, but it's not a pleasant solution at all...
If its not GACd (which it doesn't appear to be), the simple answer is:
You need the external DLL to be in the bin\ directory of the application.
If you have it as a reference in VS2010, select it, go to properties, and set the CopyLocal value to True. Rebuild the application. This should cause that DLL to copy out to the bin and your app can reference without any other work.
Well, finally managed to make it work by copying the DLLs into windows\system32 directory (no idea why it did not wotk the 1st time, probably an error of mine...). The application\bin folders don't work, neither does the change of the PATH variable.
If anyone knows a better solution (I don't find this one brilliant at all, that can cause DLLs collision and so on), I'd be glad to hear it !
I think this will do the job.
Do this on the server.
Undo all the things you've done before doing this.
Go to START->RUN and type cmd then run the following command regsvr32 "C:\yourfolder\idrskrn_net14.dll" with the " included.
Enjoy!
I have exactly the same problem. The dll are in the webapp/bin directory but aren't loaded. I managed to put them in the inetpub/bin and there it runs fine. However there must be a behaviour that allows loading module in the webapp bin directory. Don't know how to setup this.
I have the same problem. If I browse the website locally on the server it works fine but when I browse it across the internet via the domain name it cannot find the DLL's that are in the bin folder of the site...
I am having deployment issue with AjaxControlToolKit.dll. I copied the DLL to my local bin dir, and it works fine. But when I do the build on test server, the files are not in Visual Source Safe anywhere, so the site doesn't work. What could be the issue?.
Thank you..
You can either check in the AjaxControlToolkit assembly and any dependencies it has, or you can install it (if there is an installer) on your build and test machines. Checking it in is preferred in most cases as it makes it obvious that you have this dependency. Rather than putting it in your .\Bin folder, make a .\References (or similarly named) folder and put it there along with any other binary references you have. Then, you can add a reference at that location and set it to "Copy Local".
I have a web application project. I have DLLs that I reference in the project stored in my bin/ folder. Well, whenever I do a rebuild or clean from Visual Studio, it will delete everything in that folder. How do I prevent this from happening?
Do not put anything into bin yourself. bin is the target folder for binaries - it is not a source folder for binaries.
Create yourself a lib folder or something like that to put your third-party binaries into. You might even name it "Third Party Binaries", since not everyone knows that "lib" means the same thing. Make your references to the binaries in this folder, and Visual Studio will copy them into bin when necessary (including on a rebuild).
I'll stay away from asking the 'why' question and just state the how. Mark the files as read only and VS shouldn't delete them.
Follow John Saunders answer and put your .dll's into a separate folder. In my case I named this folder "ServerAssemblies". Then modify your project file (.csproj in my case) and add an "AfterRebuild" target.
<Target Name="AfterRebuild">
<ItemGroup>
<ExtraAssemblies Include="$(SolutionDir)ServerAssemblies\**\*.*"/>
</ItemGroup>
<Copy SourceFiles="#(ExtraAssemblies)" DestinationFolder="$(ProjectDir)bin\"></Copy>
</Target>
Can you explain why you have to store it in the bin folder to begin with? i always create a separate folder for example /components where i store all referenced dll's.
One thing the "don't do it that way!" people are forgetting is source control and 3rd party software. Using SVN you often get files that if physical references were used would create mismatches when they're not in the same physical location.
One CMS I'm working with at the moment prebuilds the VS project and solution when you set up another "instance" of it. It dumps in some dlls it needs... but if you rebuild they vanish.
The simple solution in both cases is to do as stated above and call it done.
Is it possible to exclude a folder in a web project from being published? We've got some documentation and scripts that included in a particular project folder, and are added to the project, but when I do a VS publish, I don't want them to go up to the production server.
I know they shouldn't be in the project, but I thought I'd find a workaround before I try to convince the owner to modify the way he's doing things.
Old question, but I found if I mark the folder as hidden in Windows Explorer, it doesn't show/publish in your solution.
This is good for example to stop original photoshop images being included in uploads which aren't used and are big. Anything more complex though you'll probably want to write your own publish tool.
This doesn't answer your question, exactly, but my feeling is that unless you are a single developer publishing to a server, you would be better off doing builds on a dedicated workstation or server using MSBuild (or some other building and deploying solution) directly (and thereby would be able to very granularly control what goes up to production). MSBuild can not only build, but using some extensions (including open source types), it can also deploy. Microsoft has a product called MSDeploy in beta, and that might be an even better choice, but having no experience with it, I cannot say for certain.
In our situation, we have a virtual workstation as a build box, and all we have to do is double click on the batch file that starts up an MSBuild project. It labels all code using VSS, gets latest version, builds the solution, and then deploys it to both servers. We deploy exactly what we want to deploy and nothing more. We're quite happy with it.
The only downside, if it could be considered a downside, is that at least one of us had to learn how to use MSBuild. VS itself uses MSBuild.
For the files you don't want to go, loop at the properties and set the 'Copy to Output Directory' to 'Do not copy'
This option is not available for directories, however.
Can you not exclude them from the project through visual studio to stop them being published. They will the still exist in the filesystem
The only way that you can do this to my knowledge would be to exclude it from the project, do the publish, then re-include it in the project. That can be an issue.
There are probably much better ways to solve this problem but when we publish a build for our dev servers, we'll run a batch file when the build is complete to remove the un-needed folders and web.configs (so we don't override the ones that are already deployed).
According to http://www.mahingupta.com/mahingupta/blog/post/2009/12/04/AspNet-website-Exclude-folder-from-compilation.aspx you can just give the folder the "hidden" attribute in windows explorer and it won't publish. I tested this and it works for me.
Seems like a straightforward solution for quick and dirty purposes, but I don't think it will carry through our version control (mercurial).
Select all the files that should not be published.
Go to Properties
Set
Build Action -> None
Have to repeat the process for each sub-directory.