Question: I have an x86 and x64 version of a binary that I want to upload to NuGet. What's the recommendation or required method for creating/uploading that package? I can't [find much](http://nuget.org/List/Search?packageType=Packages&searchCategory=All%20Categories&searchTerm=64&sortOrder=package-download-count&pageSize=10) to base my decision on. I see two methods...

1. Upload them both in the same package
	* Which one should I install by default?
	* Is there a way to test the processor architecture of the project to make the decision?
2. Upload two separate packages

---

Bonus question: What if I'm using something like [Chocolatey](http://chocolatey.org/), which wraps up NuGet with package manager semantics? I might need/want the x86 and x64 packages installed on my system.

Answer: 
We've been [discussing](https://groups.google.com/forum/#!topic/chocolatey/WS32DM6PV8E) a similar issue on the [Chocolatey Google Group](https://groups.google.com/forum/#!forum/chocolatey). There aren't any semantics built into NuGet. The requirement wouldn't be, *what processor architecture are you running on*. It would have to be *what processor architecture is your project targeting.* And then that complicates things... you'd have to understand `AnyCPU` as well.

I think for now, I'm going to upload two packages. I can always published a combined one when I fix up an `install.ps1` that can handle querying the project target.

```
mypackage.x86
mypackage.x64

```
There doesn't seem to be a specific target for 32 or 64 bit architectures. Bit of a pain, but can you do something with the powershell scripts (install.ps1) to detect the architecture and install accordingly?

See Automatically Running PowerShell Scripts During Package Installation and Removal - <http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package>