I see two problems:
1) You do not volunteer information
2) You do not follow instructions.
DougieLawson gave you the same information as I did a few posts back. To be able to find your problem you have to go back to a "reference" configuration, meaning a software configuration that has not been modified. The first step is to install a new, unmodified, version of raspbian (
https://www.raspberrypi.org/downloads/raspbian/) on an unused/spare card. Before you take the card from your laptop create a file named "ssh" in the root directory ("echo > [driveletter]:\ssh") When start this version it must come up with the host name "raspberrypi" (1st check point) and when you connect the Pi to a laptop
without ICS configured (and
without some other 3rd party dhcp service) the ethernet interface will receive a random address in the 169.254.X.X subnet which will not be equal to 169.254.0.1 or .2. (2nd check point).
Once you have reached the above state (hostname, ip-address) you can configure Internet Connection Sharing on your laptop for the WiFi interface giving the ethernet interface as your private connection. You should see a message box telling you that the address 192.168.137.1 has been assigned to your laptop ethernet interface. You can verify this with the "ipconfig" command from the command line.
Now pull the ethernet cable from the Pi, wait a moment, put the cable back. This will cause the interface to search for a dhcp service. Now the ICS installed dhcp service must provide an address in the subnet 192.168.137.0 and 192.168.137.1 will be used as the gateway address (default route) and name server (dns) on the Pi. You can use "uname -a", "hostname", "ifconfig", and "route" on the Pi to inspect the configuration.
Once this has been confirmed you can continue with updating the Pi and to install other applications.