Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
mediaexplorer74 committed Apr 30, 2023
1 parent 251cf23 commit 04b96b5
Show file tree
Hide file tree
Showing 18 changed files with 156 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
bin/
obj/
.vs/
x64/
*.bak
48 changes: 48 additions & 0 deletions Docs/Exceptions.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
How can I troubleshoot : System.TypeLoadException?


Can you show me a way to troubleshoot System.TypeLoadException ?

I am having this exception for an existing project in my solution which I reference from a unit test project in the same solution.

This exeption is thrown when I run my unit tests. They fail because of this exception:

Details:

Test method MyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray threw exception: System.TypeLoadException: Could not load type 'MyTestNameSpace' from assembly 'MyTestAssemblyName.Test, Version=1.0.0.0, Culture=neutral, PublicKeyToken=Somenumber.

What should I check or where should I start to investigate?

c#.netreferenceassembliestypeloadexception

do you have a configuration file that is referencing a type by it's full name; say for some IOC container or something like that? –
Andras Zoltan


13

One situation where this exception is thrown is if the executing assembly has the same name as the assembly with the given type. For example, if you are running MyApp.exe and the type is in MyApp.dll, the CLR will assume that the type should be in MyApp.exe. A solution would be to rename one of those assemblies.

+1 Thank you this just saved my tail after a lot of head scratching! –
Jon Comtois
Apr 7, 2014 at 19:49
Ditto. If nothing else, using the same name for the .dll and the .exe will cause the .pdb for the .dll to be overwritten. I simply add a 'Lib' suffix to the library, or better yet, add a 'Mgr' suffix to the .exe name. –
David R Tribble
May 31, 2018 at 22:30

In the exception message, or maybe in an InnerException property, you might find what was the requested type, with the fully qualified name, version, assembly. Check if the given assembly is reachable from the application directory. Reachable meaning in the application directory or in the private probing path of the application.

EDIT : also check that satellite assemblies (referenced by the assembly that the type loader fails loading) are reachable.


You could try switching on the 'Break when an exception is thrown' from Debug -> Tools -> Exceptions and click all the check boxes in the Thrown column. When you re-run your test you should be able to see exactly where this exception is being thrown.


Well... It was totally my bad.

I gave a wrong assembly name which was resulting a missing DLL in the bin folder.

Thanks to my mate, he pointed me to check the bin folder. And after checking the added reference's "path" I have noticed that it is looking to a completely different place.


Take a look into inner exception. This often happens when static constructor threw exception.
9 changes: 9 additions & 0 deletions Docs/_gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[submodule "ThirdParty/fna"]
path = ThirdParty/fna
url = https://github.com/8212369/fna
[submodule "ThirdParty/Icons.Avalonia"]
path = ThirdParty/Icons.Avalonia
url = https://github.com/Projektanker/Icons.Avalonia
[submodule "ThirdParty/DesktopNotifications"]
path = ThirdParty/DesktopNotifications
url = https://github.com/8212369/DesktopNotifications
Binary file added Images/contrejour.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/feedmeoil.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/intro.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/jetcarstunts.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/kinectimals.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/monkey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/outro.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/pac-man.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/shot1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/shot2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/shot3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/shot4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2022-2023 MediaExplorer

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
71 changes: 71 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# WPR 0.0.5-alpha :: DEVELOPER EDITION ::
WPR is a WP7-8 XNA app runner. This is only fork of [WPR](https://github.com/8212369/WPR), not the original.

This is only my little "Avalonia Android/Desktop framework" research + micro-development (or re-development?)))

## "User" Features
- Installing WP7-8 **decrypted** XNA XAPs locally on your machine. Most encripted XAP files are unusable :(
- Earning achievements locally for Xbox Live games, with a pop-up appear everytime achievement is unlocked. :)

## "Dev" Features
- Extended error logging (sorry, there an no any "Dev UI" switch-offs at now!)
- Some code stability improved
- System.Security.Cryptography "emulation" added (I noticed it needed for Countre Jour game...)

## Screenshot(s)
![](Images/intro.png)
![](Images/feedmeoil.png)
![](Images/kinectimals.png)
![](Images/contrejour.png)
![](Images/jetcarstunts.png)
![](Images/monkey.png)
![](Images/pac-man.png)
![](Images/outro.png)


## My little RnD / experiments
- More installed mini-games can start now... but not all... ehhhh! )
- Last WPR Desktop "dirty bugfixes" transferred (sync-ed) to WPR Android
- Zuma and Earthworm Jim game running ok at now... but some artifacts still present ;)


## Building
### Windows (Desktop) target
- I used the newest VS 2022 Preview to build this src code
- Add https://pkgs.dev.azure.com/AvaloniaUI/AvaloniaUI/_packaging/avalonia-all/nuget/v3/index.json to Nuget-package list (it allows to auto-download packages Avalonia.xxx v11.0.999-cibuild0023504-beta on the solution rebuilding)
- Build these libraries and place them under the same folder as the executable
- Place FFMPEG executable (you can download from their website or make a custom version with WMA->OGG conversion supported)
- Beside submodules included in this repostiory, this application depends on these native DLLs:
* FNA3D
* FAudio
* libtheorafile

### Android target
- I also used the newest VS 2022 Preview to build this mind-blowing code. Plus I installed "Avalonia" extension from VS Marketplace (maybe, it could help to "auto-bind/auto-recompile java deals".. who knows?)))
- I "lost" all my code fixes because of I repeat to fork the original WPR (with ALL java bindings). I use this command (at cmd line):
```
git clone --recursive https://github.com/mediaexplorer74/WPR
```
- I specially deleted .gitmodules file for reducing the problems when I'll be upload the result onto GitHub repo.
- Before building I check that .NET 6 installed (recovered by VS) in my system.


## TODO
- Stabilize app running
- Add XBOX Live "emulation" to XNA
- Fix Butterfly patching
- Fix FeelMeOil & Contre Jour (and other similar games) running because of only "start screen" appearing at now
- ? (idk what is in your brave mind))

## This runner existence :: words from the [author/owner/main developer](https://github.com/8212369/)
" It's for fun. If you are nostaglia mostly about achievements earning like me, you can try it out. There are some old games that is not released on Android or iOS, or some games that seems superior than Android or iOS version (I prefer Skulls of the Shogun on WP actually).
However, resolution scaling is not yet implemented (game renders either in 480x800 or so...), but it's fun!" :: Lin Yan (8212369)


## :: ::
AS IS. No support. Developers / Geeks only. "DIY mode"


## ::
[m][e] 2023

0 comments on commit 04b96b5

Please sign in to comment.