Is there an easy way to create Silverlight 3 applications with F# (October CTP)?
I have seen the F# for Silverlight, but that only works with the May CTP.
I am using Visual Studio Integrated Shell 2008.
It is possible to use the May CTP templates with the October CTP version of F#
Create your new project, then unload it and edit the hint path for the FSharp.Core.dll to point to the October CTP,
<HintPath>$(ProgramFiles)\fsharp-1.9.7.8\Silverlight\2.0\bin\FSharp.Core.dll</HintPath>
then reload the project and build.
You do have to package the .xap file manually by e.g. using the chiron tool (or just zipping and renaming)
The AppManifest.xaml file looks like
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
RuntimeVersion="3.0.40818.0"
EntryPointAssembly="astroclock-fs"
EntryPointType="astroclock.fs.MyApp">
<Deployment.Parts>
<AssemblyPart x:Name="astroclock-fs" Source="astroclock-fs.dll" />
<AssemblyPart x:Name="FSharp.Core" Source="FSharp.Core.dll" />
</Deployment.Parts>
</Deployment>
where you fill in your own assembly name and entrypoint instead of mine
Create a folder in $(ProjectDir) to hold all the files to be packaged and copy C:\Program Files\FSharp-1.9.7.8\Silverlight\2.0\bin\FSharp.Core.dll into it, along with the AppManifest.xaml above
Create an empty file null.py in the folder to keep chiron quiet if you are using that tool
Add the following post-build steps
cd $(ProjectDir)
copy /y $(OutDir)$(TargetFileName) [your directory with all the output]
"C:\Program Files\IronPython 2.0\Silverlight\bin\chiron.exe" /d:[your directory with all the output] /z:app.xap
Create a test page to load app.xap
Build project
Load page in browser and enjoy
ADDED
You can make a permanent fix for the hint path needed to find FSharp.Core.dll by editing the template in C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplatesCache\FSharp\Silverlight\SilverlightLibrary3.zip\SilverlightLibrary.fsproj (and probably the version of the file in C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\FSharp\Silverlight\SilverlightLibrary3.zip just to be certain).
And a working proof of concept (source and everything bundled into the xap) here.
Looks like I got to wait for VS 2010.
Related
Hi sorry for that question but, it is possible to change location reference OF TEST dll???
I have VS 2015 enterprise, i copy all DLL test in my subversion folder, add the reference but VS don't change the path... the path is alwais :
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.TestTools.UITest.****.dll
could you help me please?
path issue
The best way I've discovered is to collect your required .dlls and package them together using NuGet. Then you can change your project references to the NuGet package rather than those in the default installation.
So: Yes, change your .csproj files (unless you're working in .NET Core)
I've a WinForms app and Database Project in the same solution.
How can I output dacpac of my database project in the WinForms output directory?
I created a routine using the Microsoft.SqlServer.Dac.dll to deploy the database. What I need to send in my deploy files to use this dll properly at stations that do not have a installed DACFramework?
It looks like you have two questions:
1 - How do you copy the dacpac to the bin directory of your winforms app?
A few ways:
Add a CopyFile msbuild task to the winforms project
Write a script you run when you want it copied
Manually?
2 - How do you use DacFx if it isn't installed?
You can copy the dll's from the dac\bin folder, you will also need to add the Microsoft.SqlServer.TransactSql.ScriptDom.dll that is in the sdk\assembly folder of a sql installation.
So the paths on my machine are:
C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin
C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies
warning dll's from microsoft are not normally licensed to be copied as you want so if you are distributing them to clients, you may be legally required to install the DacFx.msi but that is one for your lawyers :)
ed
I am trying to use the SketchFlow Template for Windows Phone (http://wp7sketchflow.codeplex.com) with Blend for Visual Studio 2013 and when I try to create a project with the template I get this error:
New Project failed. Could not find file "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Blend
Preview\ProjectTemplates\en\CSharp\WindowsPhone\WindowsPhone\csWindowsPhonePrototype.zip[ControlLibrary\AssemblyInfo.cs].
I have looked inside the directory and the file does file exist. Does anyone have a solution? The only other stuff I found is http://wp7sketchflow.codeplex.com/discussions/429011.
Thanks,
I've also posted to that thread with a solution. Which I will also add here.
I've posted a fix for using this template with SketchFlow that ships in Blend/VS2013 (may work in 2012 but I didn't test).
Please read my instructions I've tried to be a clear as possible.
You WILL need to download and install the SketchFlowWP7.zip file from this codeplex (I also provide a copy in the link below).
Extract SketchFlowWP7.zip and run the SketchFlowWP7.msi to install.
When it prompts where to install choose the path to your copy of Blend. For instance for VS2013 it's default path is "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend"
Next you will need to navigate down into the following folder "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\ProjectTemplates\en\CSharp\WindowsPhone"
Here you will find a file names csWindowsPhonePrototype.zip, delete it. Yes really delete it, you are going to be replacing it's contents in the next steps.
Download the csWindowsPhonePrototype.zip from the following linkg - http://sdrv.ms/1hED9Cm
Extract the contents of csWindowsPhonePrototype.zip and you will have a folder called csWindowsPhonePrototype
Move the extracted folder into the "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\ProjectTemplates\en\CSharp\WindowsPhone" directory. PLEASE make sure that you don't have a folder called csWindowsPhonePrototype inside of it, if you do it's that child folder you need to move.
Now when you fire up Blend you should see an option for SketchFlow for Windows Phone.
I am trying to do an automated build using the command line for Visual Studio 2003. I have the following codes:
call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
Devenv /rebuild debug /project Project1 "C:\Builds\MyApp\Sample.sln"
Devenv /rebuild debug /project Project2 "C:\Builds\MyApp\Sample.sln"
Devenv /rebuild debug /project Project3 "C:\Builds\MyApp\Sample.sln"
In my script above, I build each project individually (like I saw in a tutorial on the internet). But each time I try to build, it throws me a lot of errors about the Microsoft Namespaces not being found. Below are sample error messages I get on the build:
Namespace or type 'Data' for the Imports
'Microsoft.Practices.EnterpriseLibrary.Data' cannot be found.
Namespace or type 'Sql' for the Imports
'Microsoft.Practices.EnterpriseLibrary.Data.Sql' cannot be found.
Namespace or type 'Logging' for the Imports
'Microsoft.Practices.EnterpriseLibrary.Logging' cannot be found.
Satellite assemblies could not be built because the main project
output is missing.
I have tried another method to build but this time it's the entire solution but still it gives me the same errors.
call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
Devenv C:\Builds\MyApp\Sample.sln /rebuild "Debug"
Can somebody please tell me what i'm missing?
I have over 50 projects in a single solution and it would really help me big time to create an automated build for this.
Thanks a lot! Cheers!
Don't "call" the "vsvars32.bat" file.
Use the full path for "Devenv.exe" (instead of #1).
Optionally: (maybe this is the kicker)..... cd to the directory where the .sln file resides.
"c:\myfullpath\Devenv.exe" /rebuild debug /project Project1 "C:\Builds\MyApp\Sample.sln"
Try that from the command line and see what happens.
Future Note:
In 2.0, you do NOT use "devenv.exe", you change it to msbuild.exe. (Just as an FYI).
You can also look up MSBee. (How to build 1.1 apps with msbuild).
EDIT
All of these lines are working for me.......I don't have VS2003 installed anymore. But I used VS2010 devenv.exe to run some samples.
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" MySolution.sln /clean
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /build debug /project MyProject001 MySolution.sln
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /rebuild debug /project MyProject001 MySolution.sln
Note, if I switch the /clean with the MySolution.sln (in the first example).....it fails. So there may be some ordering voodoo.
I'm not sure exactly what you want but to automate the compilation of my C# projects I use msbuild.
For example this is a code I use to build some XNA project games:
Sample Code:
#echo off
set path=%path%;C:\Windows\Microsoft.NET\Framework\v4.0.30319
Rem In the above line replace "v4.0.30319" with the latest framework version you have
Rem (or include the path to youy inbuilt compiler)
Msbuild "C:\Builds\MyApp\Sample.sln"
Now to meet any other requirements you want you can just type msbuild /? after you added it to your path environemtn variable. The best thing is this will be inbuilt for every windows computor!
Please ask if you want to know anything else, or if you want to do something else.
Try this:
Each of your Projects should have a reference to the "Microsoft.Practices.EnterpriseLibrary" - Files, dlls or whereever these are stored.
Maybe during an open IDE one holds a reference and copies it to the correspodending build folder. (After Build Task). While builing it independly the references could not be found.
If any copy tasks exist - Check the relative paths. Maybe your depended files targets to a different folder after build compared to build in the IDE.?
Just another idea..
I've written my first C#.NET WinForms application and am ready to publish the first build for users to install. I'm using log4net as my logging utility, and have it set as:
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Logs\"/>
<param name="AppendToFile" value="true"/>
<param name="DatePattern" value="yyyy-MM-dd' Log.txt'" />
// etc
When I build my application, however, nothing ever gets logged. While running in visual studio, everything goes to /bin/Debug/Logs/yyyy-MM-dd Log.txt.
How do I specify where my program should install to, and what the working directory should be?
Keep in mind this program is fairly minimal (<6K lines of code) and I don't really know the difference in all the publishing types inside of visual studio. I just want to distribute an .exe to my users and track errors under a directory such as C:\Program Files\myapp. What am I doing wrong?
EDIT: When I right click the program and go to Properties from within the solution explorer, I'm setting the following options (which may be incorrect, I've never done this before):
Build -> All Configurations -> Output Path: C:\Program Files\myapp\bin\
Debug -> All Configurations -> Working directory: C:\Program Files\myapp\bin\
Publish -> Publish Location: C:\Program Files\myapp\Publish\
Publish Wizard -> Publish Location: C:\Program Files\myapp\Publish\
Publish Wizard -> From a CD-ROM or DVD-ROM
Publish Wizard -> The application will not check for updates
Are these settings correct or am I royally screwing something up? What I would like is for the user to be prompted an install location (defaulted to: C:\Program Files\myapp), and this location always be used for the working directory (so I know where the log file is). How do I achieve this?
Since you are using Click Once for deployment, the application will not be in the typical C:\Program Files\myapp directory.
Vista and Windows 7:
C:\Users\<UserName>\AppData\Local\Apps\2.0\<obscure foler>\<obscure folder>
Windows XP:
C:\Documents and Settings\<UserName>\LocalSettings\Apps\2.0\<obscure foler>\<obscure folder>
Dig around in those directories and you should see the log4net files.
Edit
An alternative to Click Once deployment is the Visual Studio installer: Walkthrough: Deploying a Windows-based Application. This will allow you to install the application in the standard C:\Program Files\myapp directory.
I'd recommend you create few dummy projects with the installer to gain some familiarity with the various options. Initially, creating MSI's with the installer can seem daunting if you haven't used it before; after a bit of usage, the VS installer will become quite easy to use.
Another suggestion would be to test your installers on a virtual machine so you don't do anything inadvertently in your personal environment.
When running in Visual Studio the log files get written under the Debug folder as that's where the exe is.
When you install the application to C:\Program Files\myapp (or where ever) the logs will be created relative to that location and so should be in C:\Program Files\myapp\Logs/yyyy-MM-dd Log.txt - assuming that the user has rights to create directories and files at that location.
The simplest way to prove this is to install the application and run it. Then check where the log file is created.