Using Microsoft VS2010 Publish Fails to deploy .json files - json

Anyone know what would make vs2010 not deploy .json files when doing a publish? All the other files (.js,.html, etc.) publish, but the .json files just to not move.
I don't think I've done anything special that would prevent that so any thoughts would be appreciated.

Right click on the file choose "properties" and set "content" as for the "Build Action"
.JSON is not known to VS2010 web application file types
You can change the behavior of vS2010 by editing the registry

If your choosing to only deploy nessicary files, visual studio may not have any hard links to the json files, and thusly does not include them in the deploy. You can choose to deploy all files in Package/Publish settings. Or just ftp the json files manually.

Related

Publish json file generated from exe to Teamcity artifacts

I am new to teamcity and I am trying to do the following:
I have an exe file in my project & I have a build step in teamcity to
run the exe.
When exe runs, it saves a json file in the same folder as the exe.
How can I publish this json to the artifacts in teamcity?
In your build configuration settings, on the General page, you are able to specify which file(s) or folder(s) to publish as artifacts. You can export the file(s)/folder(s) as is, or zip them. Refer to the documentation and the quick help dialog (mouse-over the little info-icon next to the text field) for syntax flavors.
Simply writing the name of the json file should be enough though. If your build has run once before already, you can click the folder-structure icon on the right to see an example of the contents from the previous run. In this box, you can simply click the content you want exported. Note: this does require a recent run.

SSIS file path changing to C:\windows\system32 depending on how I open the project file

I've been working with SSIS reading different files - from CSVs to XLSXs - with no problems. My paths are relative, so SSIS searches for the files from the project's folder.
Well, today my colleague tried to run a package and he got a curious error message saying that the file could not be found under the "C:\windows\system32" folder. There's no configuration that would point SSIS to that folder and with me and a third colleague it's working well.
After some investigation we discovered that the problem has nothing to do with the user itself, but with how the user opens the project. Since the beginning I've been opening the project by double clicking the ".dtproj" file. My colleague first opens the SSIS development interface then opens the project file from the menu.
Has anyone noticed that behavior? What could be the cause for that?
error message print
Microsoft Visual Studio 2008
Version 9.0.30729.4462 QFE
Microsoft .NET Framework
Version 3.5 SP1
Installed Edition: IDE Standard
This happens because the different ways of launching the IDE end up with different current directories for the IDE process. You can test this by creating a package with only a Script Task, with the one line:
MessageBox.Show(Environment.CurrentDirectory);
And then running this project after launching it both ways.
Double-clicking the project or solution file sets the folder containing that file as the current directory. (I assume this is standard Windows process launching behaviour when starting a process based on the file extension association.) SSIS packages then look in the current directory when the path to the configuration file is relative.
We use relative paths to configuration files all the time to simplify deployment, and have to always remember to open the solutions by double-clicking the SLN file.

SSIS Deployment Woes

I'm quite confused as to how to create a deployment in SSIS 2008 that I can use throughout the various sites we are going to deploy to. I'm using the deployment utility to deploy my ETL packages which are file based and executed using a SQL job.
When I rebuild my solution, the deployment files are created along with their configuration files which I bind my connection strings to. I've discovered that each of the packages are still referencing the configuration files in my project folder, rather than the configuration files in the deployment folder. I thought that when I created a deployment, the paths referencing the configuration files would be relative paths.
Ideally, what I would have liked to have been able to do would be to copy the contents of the deployment folder to a flash drive, plug it in at the site I'm deploying to and edit the configuration file per the customer site, execute the deployment manifest file in the folder and expect everything to work. But this doesn't seem to be the case.
I also notice that the SQL job has an option to specify the configuration files for the packages, but this doesn't seem to have an effect either. I must clearly be doing something wrong here, please could someone assist.
Seems like you are encountering these two issues with SSIS deployment and execution:
Configuration file references are stored with absolute paths (meaning the concrete path used in the development environment when the configuration file reference was created, and in production this is the same path that will be used).
Specifying a different configuration file at runtime in SSIS 2008 cannot override values specified at design time (see Understanding How SSIS Package Configurations Are Applied at Run Time).
To deploy your packages with a simple file copy the way you describe, you must change your packages to use a relative reference to your configuration files:
Right click the package file and select View Source to open the XML view of the package source. Search for your configuration file, which will include the path, and remove the path; keeping only the filename portion. Alternatively, change the absolute path to a relative path to the configuration file. Save and close the XML view of the package.
Now when you deploy the package and the configuration file together, ensuring they have the same relative location to each other, the package will find the config file by the relative path, and work the way you expect.
Note: from this point forward you will need to open the BIDS IDE by double-clicking on the project or solution file. If you launch Visual Studio, and then open the project or solution from within the IDE, the IDE will not be able to find the configuration file when you execute the package (the current directory will be Windows\System32, not your package folder).

In monodevelop, how to set the working directory when running your code

does anyone know if it is possible to set the working directory for running the application you create in monodevelop?
The app is written to the bin/Debug directory and that seems to be the working directory when you debug the application. For my application (which I am porting from Windows) it takes an XML configuration file which references other XML files, the paths (in the configuration xml) I use are relative paths (which is sensible imo).
IIRC Visual Studio lets you set the working directory when you are debugging, does monodevelop? I had a good look around the options and tried to search for an answer, but no luck.
thanks
Dave
As far as I'm aware "Run" and "Debug" mode use the same working directory.
Have a look at the following post

c# program how to open file with double click

I have a C# program which works with files created by itself. The file can be opened by running the program and then accessing it via the GUI.
How can I open the file without having to run the program explicitly and just by double clicking on the concerned file?
You have to add registry entries in your installer to associate your program's file extension with your application.
Here is an article in MSDN that will tell you what you need to know about file associations: How File Associations Work
Typically you'd do this with your install, if you're not using an installer or ClickOnce, then you can do it from code, but you have to muck about in the registry: http://mel-green.com/2009/04/c-set-file-type-association/
You're asking how to associate a file type with your application. You can do this by adding entries to the registry using C#.