views11
comments
I don't know for sure, but I think you're probably hitting a bug in the F# project system. Briefly, in VS2010 Beta1 (and the corresponding VS2008 release, as well as all prior releases), assembly references were broken in a number of subtle ways (such as the SpecificVersion issues you're describing). Unfortunately if this is the case, I think it may be impossible to build this project from Visual Studio.
Something to try:
- make a copy of the .fsproj file
- hand-edit the .fsproj file to have the right assembly references (it may be useful to use VS to set up the working references in a C# project, and then compare the .csproj and the .fsproj, and then fix up the .fsproj)
- then invoke msbuild.exe from the command-line to build the .fsproj
I think that may work. I think also if it does work, if you open the fixed .fsproj file in VS, VS may re-mangle it back into a bad state. So you might need to keep two copies of the project, one for VS to screw up (but allow you to use VS for the editing experience), and another to use when you want to build (from the command-line using msbuild.exe).
It's also possible I've guessed wrong and there are other issues at play. But do give that a try and let me know.
I tried different combinations of actions to solve the issue. Here are my findings.
You don't need MSBuild to solve the problem. You have to change the SpecificVersion property on the XNA assembly references to true, by hand-editing the .fsproj file.
Then you can build the F# library normally (via the IDE) and you can use the newest version (3.1) of the XNA assemblies.
Problems with the F# project system (when you don't use the solution explained above):
- Adding XNA assembly references, they are SpecificVersion false by default (in VCS 2008 Express the are true by default).
- By building the F# library, the XNA references change from 3.1 to 3.0. In the .fsproj text file it's still 3.1 though.
- Changing the SpecificVersion property via the IDE has strange consequences. After changing that property on one of the XNA references, you cannot change that property on other XNA references (the designer doesn't let you do it).
- But you'd think that if you can change the property via the IDE on 1 XNA reference, you'd expect that that reference stays the new version 3.1. The answer is no. Everything still changes to 3.0. But on that reference (where SpecificVersion is set to true via the IDE), the version DOES also change to 3.0 in the .fsproj text file. Very strange.
I know my English is far from perfect. I hope you understand me. It's a bit difficult to explain, because of the strange behaviour.
But, essentially, setting the SpecificVersion to true manually (in the .fsproj text file) solves the problem.
Will this bug be fixed in the final RTM version of the F# project system?
Will there be a true RTM version of F# for Visual Studio 2008 Integrated Shell SP1, or will F# always stay CTP for VS2008, and is an upgrade to the upcoming VS2010 necessary?
I hope it will be easier in the future to combine F# with XNA...
Thanks for this info.
Most of these issues sound familiar. I just recently spent about a week rewriting the assembly reference code in the F# project system to (hopefully) fix all these bugs... we're using the C# project system and code base as a model, and trying to mimc its behavior exactly. So hopefully this will all be fixed in Beta2. I'm unsure we'll have time to run through all these particular XNA scenarios you mention (though I'll mention this to our test team to try to do some ad-hoc testing to scout the recent fixes here). The code for the VS2008 CTPs and the VS2010 Betas are (mostly) the same, and in this case I think you can expect to see the fix in the next 2008 CTP as well as in 2010 Beta2. The 2008 releases will always be 'just CTPs', but our intention is for them to be similar quality as the corresponding 2010 releases.
There are still problems with the VS IDE to set references in the October 2009 CTP for VS 2008.
I have an F# library project which references explicitly (through using "browse" in the Add Reference dialog) to dlls in the XNA framework. The referenced items are Microsoft.Xna.Framework, System.Core and mscorlib.
Specific Version is set to True for each reference.
After running a build, references to System.Core and mscorlib are automagically changed to use other Full Path values (in C:\Windows\.NET\Framework).
Edit: Those are not just academical concerns, the resulting dll cannot be loaded by the Xbox:
An unhandled exception of type 'System.TypeLoadException' occurred in Unknown Module.
Additional information: La version de l'assembly System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089 ne peut pas être chargée par cette version du Microsoft .NET Compact Framework.
I was at least able to build using msbuild from the command-line using the following project file. (This is with the October CTP and XNA.) Trying to open the project file in VS crashes VS though, sigh.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
<?xml version="1.0" encoding="utf-8"?> http://schemas.microsoft.com/developer/msbuild/2003</A>"> {06FF26CD-6E7A-45A6-931F-4D62C8AE807F} <!-- {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} --> {2DF5C3F4-5A5F-47a9-8E94-23B4456F55E2};{F2A71F9B-5D33-465A-A702-920D77279786} <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> Xbox 360 <OutputType>Exe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>Xbox360Game2</RootNamespace> <AssemblyName>Xbox360Game2</AssemblyName> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> <XnaFrameworkVersion>v3.0</XnaFrameworkVersion> <XnaPlatform>Xbox 360</XnaPlatform> <XnaCrossPlatformGroupID>f9728d75-8188-45cf-82b5-91f36041c3af</XnaCrossPlatformGroupID> <Thumbnail>GameThumbnail.png</Thumbnail> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Xbox 360\Debug</OutputPath> <DefineConstants>DEBUG;TRACE;XBOX;XBOX360</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <NoStdLib>true</NoStdLib> <UseVSHostingProcess>false</UseVSHostingProcess> <XnaCompressContent>true</XnaCompressContent> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Xbox 360\Release</OutputPath> <DefineConstants>TRACE;XBOX;XBOX360</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <NoStdLib>true</NoStdLib> <UseVSHostingProcess>false</UseVSHostingProcess> <XnaCompressContent>true</XnaCompressContent> <ItemGroup> <Compile Include="Program.fs" /> </ItemGroup> <ItemGroup> <Reference Include="FSharp.Core"> <HintPath>C:\Program Files (x86)\FSharp-1.9.7.8\CompactFramework\2.0\bin\FSharp.Core.dll</HintPath> </Reference> <Reference Include="mscorlib" /> </ItemGroup> <Import Project="$(MSBuildExtensionsPath32)\FSharp\1.0\Microsoft.FSharp.Targets" /> <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" /> <!-- To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> -->
Brian, is there something special with this project file? I also tried to build outside of visual studio, and succeeded, but building was never the problem.
The problem is that the resulting assembly cannot be loaded on the XBox360, because apparently it references assemblies that the XNA framework on the XBox does not like.
I have been trying many different configurations, and I must admit I am now completely lost. Instead of trying to get "something" to work, I would like to have it clear for me what I am supposed to do.
First, should I aim at building against FSharp.Core for the compact framework? It's not clear to me that this is the correct way. The framework on the XBox360 is based on the compact framework, but it's not identical.
If building for the compact framework is the way to go, the next question is which version should I use, 2.0 or 3.5?
Once that is clear, how do I actually do that in Visual Studio 2008, Visual Studio 2010 and outside of Visual Studio?
Brian, is there something special with this project file? I also tried to build outside of visual studio, and succeeded, but building was never the problem.
The problem is that the resulting assembly cannot be loaded on the XBox360, because apparently it references assemblies that the XNA framework on the XBox does not like.
Hm, I think I lost track of that. I've been focusing on the "VS messes up the references" end of the issue, rather than the "even if I use msbuild, XBox still can't consume it" end.
I have been trying many different configurations, and I must admit I am now completely lost. Instead of trying to get "something" to work, I would like to have it clear for me what I am supposed to do.
First, should I aim at building against FSharp.Core for the compact framework? It's not clear to me that this is the correct way. The framework on the XBox360 is based on the compact framework, but it's not identical.
I didn't realize that. But didn't this used to 'work' a long time ago (September 2008 CTP maybe)? Back then, was the FSharp.Core compiled for CompactFramework 2.0 was used? Do you recall?
If building for the compact framework is the way to go, the next question is which version should I use, 2.0 or 3.5?
Once that is clear, how do I actually do that in Visual Studio 2008, Visual Studio 2010 and outside of Visual Studio?
Glancing at the metadata in
"C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v3.0\References\Xbox360\mscorlib.dll"
suggests to me that 2.0 is right, but I'm really not sure.
The VS aspect is looking pretty hopeless right now. Unfortunately nothing 'CompactFramework' ships in VS2010, so this is not high on our list of priorities. Back when you reported issues in Beta1, I really thought that fixing the MSBuild resolutions for resolving assemblies was 'the key bug' (for VS anyway - there was also the compiler bug about writing the correct metadata version into F# assemblies, you may recall) and would be the end of it. But now these fixes have uncovered more issues with the project flavoring mechanism.
I have been trying many different configurations, and I must admit I am now completely lost. Instead of trying to get "something" to work, I would like to have it clear for me what I am supposed to do.
First, should I aim at building against FSharp.Core for the compact framework? It's not clear to me that this is the correct way. The framework on the XBox360 is based on the compact framework, but it's not identical.
I didn't realize that. But didn't this used to 'work' a long time ago (September 2008 CTP maybe)? Back then, was the FSharp.Core compiled for CompactFramework 2.0 was used? Do you recall?
Yes, it worked with the previous version. I did not have to do anything special, just create a standard F# lib project, add a reference to the XBox XNA framework assemblies, and everything went fine. The trouble started when I tried to explicitly link against mscorlib from XNA in my F# project.I guess that XNA Studio has some magic to make 3rd party assemblies usable in an Xbox XNA project.The problem is that this magic no longer seem to work. I could ask on XNA Creators club forums, the guys behind the XNA framework are active there.EDIT: Does FSharp.Core.dll try to load System.dll version 2.0 dynamically? It's just a wild guess on my part, but if it does that, and if the XNA magic happens at build time, that might explain why the XBox complains about System.dll. The build-time magic would probably not be able to handle run-time dynamic assembly loads.
If building for the compact framework is the way to go, the next question is which version should I use, 2.0 or 3.5?
Once that is clear, how do I actually do that in Visual Studio 2008, Visual Studio 2010 and outside of Visual Studio?
Glancing at the metadata in
"C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v3.0\References\Xbox360\mscorlib.dll"
suggests to me that 2.0 is right, but I'm really not sure.
The VS aspect is looking pretty hopeless right now. Unfortunately nothing 'CompactFramework' ships in VS2010, so this is not high on our list of priorities. Back when you reported issues in Beta1, I really thought that fixing the MSBuild resolutions for resolving assemblies was 'the key bug' (for VS anyway - there was also the compiler bug about writing the correct metadata version into F# assemblies, you may recall) and would be the end of it. But now these fixes have uncovered more issues with the project flavoring mechanism.
I will try with a good old makefile or a script to avoid any problem related to msbuild, and report how far I got.
After asking on the XNA Creator's club forum, I managed to get it working.
The right way of doing things is to reference System*.dll and mscorlib from the XNA framework for the XBox and FShap.Core.dll for the compact framework 2.0.
I have to use a batch script to build my library, as msbuild and visual studio 2008 override my choice of dlls to use those for the PC platform.
The command line I used:
"C:\Program Files\FSharp-1.9.7.8\\bin\fsc.exe"
-o:obj\Release\XBox360.dll --standalone --noframework --define:TRACE
--optimize+ --tailcalls+ -r:"C:\Program
Files\FSharp-1.9.7.8\CompactFramework\2.0\bin\FSharp.Core.dll"
-r:"C:\Program Files\Microsoft XNA\XNA Game
Studio\v3.1\References\Xbox360\Microsoft.Xna.Framework.dll"
-r:"C:\Program Files\Microsoft XNA\XNA Game
Studio\v3.1\References\Xbox360\mscorlib.dll" -r:"C:\Program
Files\Microsoft XNA\XNA Game
Studio\v3.1\References\Xbox360\System.Core.dll" -r:"C:\Program
Files\Microsoft XNA\XNA Game Studio\v3.1\References\Xbox360\System.dll"
--target:library --warn:3 --warnaserror:76 --fullpaths --flaterrors
<your F# source files here>
I am a bit disappointed to see the same problem is still in F# 1.9.9.9. It is very frustrating to see Visual Studio second-guess me and override my choice of System.dll and System.Core.dll. Oh well, I'll just keep going with my batch script, then.
Okay thanks. I wish the F# team the very best, developing the next CTP and Beta of F#.
F# rocks and using the language for making XNA games is more fun than using C#.
Epic RPG Gamer
Topic tags
- f# × 3705
- websharper × 1897
- compiler × 286
- functional × 201
- ui next × 139
- c# × 121
- classes × 97
- web × 97
- .net × 84
- book × 84
- async × 76
- ui.next × 67
- bug × 54
- core × 49
- website × 49
- server × 45
- parallel × 43
- ui × 43
- enhancement × 41
- parsing × 41
- testing × 41
- trywebsharper × 41
- typescript × 37
- html × 35
- javascript × 35
- owin × 35
- asynchronous × 30
- monad × 28
- ocaml × 28
- tutorial × 27
- warp × 27
- haskell × 26
- sitelet × 25
- linq × 22
- workflows × 22
- wpf × 20
- fpish × 19
- introduction × 19
- silverlight × 19
- sitelets × 19
- monodevelop × 17
- rpc × 17
- suave × 17
- piglets × 16
- collections × 15
- feature request × 15
- jquery × 15
- templates × 15
- getting started × 14
- pipeline × 14
- kendoui × 13
- reactive × 12
- 4.1.0.171 × 11
- monads × 11
- opinion × 10
- 4.0.190.100-rc × 9
- deployment × 9
- fixed × 9
- formlets × 9
- in × 9
- json × 9
- plugin × 9
- proposal × 9
- scheme × 9
- solid × 9
- basics × 8
- concurrent × 8
- highcharts × 8
- how-to × 8
- python × 8
- 4.1.1.175 × 7
- complexity × 7
- documentation × 7
- visual studio × 7
- 4.1.2.178 × 6
- lisp × 6
- real-world × 6
- released in 4.0.192.103-rc × 6
- remoting × 6
- resources × 6
- scala × 6
- websharper ui.next × 6
- workshop × 6
- xaml × 6
- 4.0.193.110 × 5
- 4.2.3.236 × 5
- aspnetmvc × 5
- authentication × 5
- azure × 5
- bootstrap × 5
- conference × 5
- dsl × 5
- formlet × 5
- java × 5
- list × 5
- metaprogramming × 5
- ml × 5
- released in Zafir.4.0.188.91-beta10 × 5
- sql × 5
- visualstudio × 5
- websharper.forms × 5
- zafir × 5
- 4.0.192.106 × 4
- 4.0.195.127 × 4
- 4.1.0.38 × 4
- 4.2.1.86 × 4
- 4.2.6.118 × 4
- css × 4
- example × 4
- extensions × 4
- fsi × 4
- fsx × 4
- html5 × 4
- jqueryui × 4
- lift × 4
- reflection × 4
- remote × 4
- rest × 4
- spa × 4
- teaching × 4
- template × 4
- websocket × 4
- wontfix × 4
- 4.0.196.147 × 3
- 4.1.0.34 × 3
- 4.1.6.207 × 3
- 4.2.1.223-beta × 3
- 4.2.11.258 × 3
- 4.2.4.114 × 3
- 4.2.4.247 × 3
- 4.2.5.115 × 3
- 4.2.6.253 × 3
- 4.2.9.256 × 3
- ajax × 3
- alt.net × 3
- aml × 3
- asp.net mvc × 3
- canvas × 3
- cloudsharper × 3
- compilation × 3
- database × 3
- erlang × 3
- events × 3
- extension × 3
- file upload × 3
- forums × 3
- inline × 3
- issue × 3
- kendo × 3
- macro × 3
- mono × 3
- msbuild × 3
- mvc × 3
- pattern × 3
- piglet × 3
- released in Zafir.4.0.187.90-beta10 × 3
- svg × 3
- type provider × 3
- view × 3
- 4.1.1.64 × 2
- 4.1.5.203 × 2
- 4.1.7.232 × 2
- 4.2.10.257 × 2
- 4.2.3.111 × 2
- 4.2.5.249 × 2
- android × 2
- asp.net × 2
- beginner × 2
- blog × 2
- chart × 2
- client × 2
- client server app × 2
- clojure × 2
- computation expressions × 2
- constructor × 2
- corporate × 2
- courses × 2
- cufp × 2
- d3 × 2
- debugging × 2
- direct × 2
- discriminated union × 2
- docs × 2
- elm × 2
- endpoint × 2
- endpoints × 2
- enterprise × 2
- entity framework × 2
- event × 2
- f# interactive × 2
- fable × 2
- flowlet × 2
- formdata × 2
- forms × 2
- fsc × 2
- google maps × 2
- hosting × 2
- http × 2
- https × 2
- iis 8.0 × 2
- install × 2
- interactive × 2
- interface × 2
- iphone × 2
- iteratee × 2
- jobs × 2
- jquery mobile × 2
- keynote × 2
- lens × 2
- lenses × 2
- linux × 2
- listmodel × 2
- mac × 2
- numeric × 2
- oauth × 2
- obfuscation × 2
- offline × 2
- oop × 2
- osx × 2
- packaging × 2
- pattern matching × 2
- performance × 2
- pipelines × 2
- q&a × 2
- quotation × 2
- reference × 2
- released in Zafir.4.0.185.88-beta10 × 2
- rx × 2
- script × 2
- security × 2
- self host × 2
- seq × 2
- sockets × 2
- stm × 2
- tcp × 2
- trie × 2
- tutorials × 2
- type × 2
- url × 2
- var × 2
- websharper.charting × 2
- websharper4 × 2
- websockets × 2
- wig × 2
- xna × 2
- zh × 2
- .net interop × 1
- 2012 × 1
- 4.0.194.126 × 1
- 4.1.3.184 × 1
- 4.1.4.189 × 1
- 4.2.0.214-beta × 1
- 4.2.12.259 × 1
- 4.2.2.231-beta × 1
- 4.2.8.255 × 1
- Canvas Sample Example × 1
- DynamicStyle Animated Style × 1
- Fixed in 4.0.190.100-rc × 1
- Released in Zafir.UI.Next.4.0.169.79-beta10 × 1
- SvgDynamicAttribute × 1
- WebComponent × 1
- abstract class × 1
- accumulator × 1
- active pattern × 1
- actor × 1
- addin × 1
- agents × 1
- aggregation × 1
- agile × 1
- alter session × 1
- animation × 1
- anonymous object × 1
- apache × 1
- api × 1
- appcelerator × 1
- architecture × 1
- array × 1
- arrays × 1
- asp.net 4.5 × 1
- asp.net core × 1
- asp.net integration × 1
- asp.net mvc 4 × 1
- asp.net web api × 1
- aspnet × 1
- ast × 1
- attributes × 1
- authorization × 1
- b-tree × 1
- back button × 1
- badimageformatexception × 1
- bash script × 1
- batching × 1
- binding-vars × 1
- bistro × 1
- body × 1
- bundle × 1
- camtasia studio × 1
- cas protocol × 1
- charts × 1
- clarity × 1
- class × 1
- cli × 1
- clipboard × 1
- clojurescript × 1
- closures × 1
- cloud × 1
- cms × 1
- coding diacritics × 1
- color highlighting × 1
- color zones × 1
- combinator × 1
- combinators × 1
- compile × 1
- compile code on server × 1
- config × 1
- confirm × 1
- content × 1
- context × 1
- context.usersession × 1
- continuation-passing style × 1
- coords × 1
- cordova × 1
- cors × 1
- coursera × 1
- cross-domain × 1
- csla × 1
- current_schema × 1
- custom content × 1
- data × 1
- data grid × 1
- datetime × 1
- debug × 1
- declarative × 1
- delete × 1
- devexpress × 1
- dhtmlx × 1
- dictionary × 1
- directattribute × 1
- disqus × 1
- distance × 1
- do binding × 1
- doc elt ui.next upgrade × 1
- docker × 1
- dojo × 1
- dol × 1
- dom × 1
- domain × 1
- du × 1
- duf-101 × 1
- dynamic × 1
- eastern language × 1
- eclipse × 1
- edsl × 1
- em algorithm × 1
- emacs × 1
- emotion × 1
- enums × 1
- error × 1
- etw × 1
- euclidean × 1
- eventhandlerlist × 1
- examples × 1
- ext js × 1
- extension methods × 1
- extra × 1
- facet pattern × 1
- failed to translate × 1
- fake × 1
- fantomas × 1
- fear × 1
- float × 1
- form × 1
- form-data × 1
- forum × 1
- fp × 1
- frank × 1
- fsdoc × 1
- fsharp × 1
- fsharp.core × 1
- fsharp.powerpack × 1
- fsharpx × 1
- fsunit × 1
- function × 1
- functional style × 1
- game × 1
- games × 1
- gc × 1
- generic × 1
- geometry × 1
- getlastwin32error × 1
- getting-started × 1
- google × 1
- google.maps × 1
- grid × 1
- group × 1
- guide × 1
- hash × 1
- headers × 1
- hello world example × 1
- heroku × 1
- highchart × 1
- history × 1
- how to × 1
- html-templating × 1
- http405 × 1
- httpcontext × 1
- hubfs × 1
- i18n × 1
- ie 8 × 1
- if-doc × 1
- iis × 1
- image × 1
- images × 1
- inheritance × 1
- initialize × 1
- input × 1
- install "visual studio" × 1
- installer × 1
- int64 × 1
- interfaces × 1
- internet explorer × 1
- interop × 1
- interpreter × 1
- io × 1
- iobservable × 1
- ios × 1
- iot × 1
- ipad × 1
- isomorphic × 1
- javascript optimization × 1
- javascript semanticui resources × 1
- jquery-plugin × 1
- jquery-ui × 1
- jquery-ui-datepicker × 1
- js × 1
- kendo datasource × 1
- kendochart × 1
- kendoui compiler × 1
- knockout × 1
- l10n × 1
- learning × 1
- library × 1
- libs × 1
- license × 1
- licensing × 1
- lineserieszonescfg × 1
- local setting × 1
- localization × 1
- logging × 1
- loop × 1
- macros × 1
- mailboxprocessor × 1
- mapping × 1
- maps × 1
- markerclusterer × 1
- markup × 1
- marshal × 1
- math × 1
- mathjax × 1
- message × 1
- message passing × 1
- message-passing × 1
- meta × 1
- metro style × 1
- micro orm × 1
- minimum-requirements × 1
- mix × 1
- mobile installation × 1
- mod_mono × 1
- modal × 1
- module × 1
- mouseevent × 1
- mouseposition × 1
- multidimensional × 1
- multiline × 1
- multithreading × 1
- mysql × 1
- mysqlclient × 1
- nancy × 1
- native × 1
- nested × 1
- nested loops × 1
- node × 1
- nunit × 1
- object relation mapper × 1
- object-oriented × 1
- om × 1
- onboarding × 1
- onclick × 1
- optimization × 1
- option × 1
- orm × 1
- os x × 1
- output-path × 1
- override × 1
- paper × 1
- parameter × 1
- persistence × 1
- persistent data structure × 1
- phonegap × 1
- pola × 1
- post × 1
- powerpack × 1
- prefix tree × 1
- principle of least authority × 1
- privacy × 1
- private × 1
- profile × 1
- programming × 1
- project × 1
- project euler × 1
- projekt_feladat × 1
- protected × 1
- provider × 1
- proxy × 1
- ptvs × 1
- public × 1
- pure f# × 1
- purescript × 1
- qna × 1
- quant × 1
- query sitelet × 1
- question × 1
- quotations × 1
- range × 1
- raphael × 1
- razor × 1
- rc × 1
- reactjs × 1
- real-time × 1
- ref × 1
- region × 1
- released in 4.0.190.100-rc × 1
- reporting × 1
- responsive design × 1
- rest api × 1
- rest sitelet × 1
- restful × 1
- round table × 1
- router × 1
- routing × 1
- rpc reverseproxy × 1
- runtime × 1
- sales × 1
- sample × 1
- sampleapp × 1
- scriptcs × 1
- scripting × 1
- search × 1
- self hosted × 1
- semanticui × 1
- sequence × 1
- serialisation × 1
- service × 1
- session-state × 1
- sharepoint × 1
- signals × 1
- sitelet website × 1
- sitelet.protect × 1
- sitlets × 1
- slickgrid × 1
- source code × 1
- sqlentityconnection × 1
- ssl × 1
- standards × 1
- static content × 1
- stickynotes × 1
- streamreader × 1
- stress × 1
- strong name × 1
- structures × 1
- submitbutton × 1
- subscribe × 1
- svg example html5 websharper.ui.next × 1
- sweetalert × 1
- system.datetime × 1
- system.reflection.targetinvocationexception × 1
- table storage × 1
- targets × 1
- tdd × 1
- templates ui.next × 1
- templating × 1
- text parsing × 1
- three.js × 1
- time travel × 1
- tls × 1
- tooltip × 1
- tracing × 1
- tsunamiide × 1
- turkish × 1
- twitter-bootstrap × 1
- type erasure × 1
- type inference × 1
- type providers × 1
- type-providers × 1
- typeprovider × 1
- ui next forms × 1
- ui-next × 1
- ui.next jqueryui × 1
- ui.next charting × 1
- ui.next formlets × 1
- ui.next forms × 1
- ui.next suave visualstudio × 1
- ui.next templating × 1
- unicode × 1
- unittest client × 1
- upload × 1
- usersession × 1
- validation × 1
- vb × 1
- vb.net × 1
- vector × 1
- view.map × 1
- visal studio × 1
- visual f# × 1
- visual studio 11 × 1
- visual studio 2012 × 1
- visual studio shell × 1
- vs2017 compiler zafir × 1
- vsix × 1
- web api × 1
- web-scraping × 1
- webapi × 1
- webcomponents × 1
- webforms × 1
- webgl × 1
- webrtc × 1
- webshaper × 1
- websharper async × 1
- websharper codemirror × 1
- websharper f# google × 1
- websharper forms × 1
- websharper reactive × 1
- websharper rpc × 1
- websharper sitelets routing × 1
- websharper warp × 1
- websharper-interface-generator × 1
- websharper.chartsjs × 1
- websharper.com × 1
- websharper.exe × 1
- websharper.owin × 1
- websharper.ui.next × 1
- websharper.ui.next jquery × 1
- websockets iis × 1
- why-websharper × 1
- windows 7 × 1
- windows 8 × 1
- windows-phone × 1
- winrt × 1
- www.grabbitmedia.com × 1
- xamarin × 1
- xml × 1
- yeoman × 1
- yield × 1
- zafir beta × 1
- zafir websharper4 × 1
- zarovizsga × 1
![]() |
Copyright (c) 2011-2012 IntelliFactory. All rights reserved. Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy |
Built with WebSharper |
Hi everyone
First of all, I know there is another topic about XNA on this forum, but this is about another problem (though they may be related?).
Secondly, I already opened a topic on the XNA forum, and they gave me the advice to report the issue on this forum.
This is the link to the topic on the XNA forum: [link:forums.xna.com]
I will summarize the issue. I use VS 2008 Integrated Shell SP1 (with the most recent May 2009 F# CTP), in combination with VCS 2008 Express SP1 (with XNA Game Studio 3.1). When I add XNA assembly references (XNA version 3.1) to the F# library, they automatically change to the older version 3.0, when I build the F# library.
The strange thing is that in the .fsproj file the references still are the new version.
The fact that SpecificVersion property on the reference is false, is not the cause of the problem. I do not understand why it is false by default though (in new F# projects standard assemblies references like FSharp.Core and System are also SpecificVersion false).
There is something else that's strange. I can only set the SpecificVersion to true on "Microsoft.Xna.Framework", and not on "Microsoft.Xna.Framework.Game". The IDE doesn't let me. Why the difference between those 2 XNA assembly references?
The funny thing is, after I build the F# library, I can change the value of SpecificVersion on both assembly references.
I would like to use the new XNA 3.1 features in an F# library, but at the moment I can only use 3.0 features in it.
Does anyone know how to solve this issue?
Thanks in advance.
Epic RPG Gamer