Cannot open VS project if Blend is used?
I ran into an issue recently after reinstalling my laptop, where I couldn’t open a C# (WPF) project in Visual Studio 2010. Every time I tried it just grimaced at me and said:
Unable to read the project file 'Rule18.csproj'.
E:\Projects\Rule18\Rule18\Rule18.csproj(335,3): The imported project "C:\Program Files (x86)\MSBuild\Microsoft\Expression\Blend\3.1\WPF\Microsoft.Expression.Blend.WPF.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
Part of the cause is that previously I had Blend installed, and I had used it on this project to do some fairly complex things, in particular Font Embedding. However since reinstalling I had not installed Blend again.
This is caused the build target file not to be installed, and that caused the error.
How do you get around this?
The best solution is to install the FREE Blend SDK because that will put the build targets on the machine. Links for the SDKs:
- Blend 4 .NET SDK: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=75e13d71-7c53-4382-9592-6c07c6a00207
- Blend 4 Silverlight SDK: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d197f51a-de07-4edf-9cba-1f1b4a22110d
However I didn’t have time to do this, so as a temporary solution (and definitely not a recommended solution): I opened the project file, and right near the bottom I found the Import for CSharp and Blend. I removed the Blend one, saved and reloaded and worked.
VirtualBox UUID already in use
I am playing around with using VirtualBox to run virtual machines and I ran into an issue trying to use a clone (copy) of a VDI file. The VDI file is the hard disk drive and it has a unique identifier in it it (UUID) and so trying to use a clone of one gives you the error: UUID of the hard disk is already exist in the media registry.
To solve it you need to run the following command to change the UUID of the file:
VBoxManage.exe internalcommands sethduuid [VDI file]
Example:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands sethduuid
AppFabric.vdi
Downloaded PowerPoint files need repairs?
I download a lot of PowerPoint presentations and recently I am seeing more and more are stating they need repairs when opened!
Unfortunately repairing does not work and downloading them again doesn't help either! What is happening is that Windows is detecting that these files are from the Internet and enabling a block on them for your protection. To remove this block, you need to right click the file, select Properties, click the Unblock button and click OK.
You will then be able to open them successfully.
Thanks Joseph for spotting the type-o in the original post.
Paying Nokia for convenience
In the last few weeks I got a Nokia 5800 XpressMusic phone which has been brilliant, and as the geek I am I have been playing around and trying out many of the functions on it. One area which has been an absolute fail, has been the GPS software: Nokia Maps. The phone comes with a 6 month license to get directions or have the phone speak to you as you drive, but at the end of the 6 months you need to pay for these premium services :(
I have no problem paying for it, but the costing model is retarded. This is the pricing when you select it from within the phone:
- 1 day costs R19.99
- 30 days costs R20.00
- 30 days with automatic renewal costs R66
- 1 year costs R512.99
Now I cannot imagine what person would choose 1 day, when 30 days is 1c more expensive, however the part that confuses me is that it is over three times more expensive for the same 30 days with the exception that you are telling Nokia you want to keep up to date with it. The year part is also odd, since if you purchase each month separately it is R240 which is less than half of the year subscription!
All of this screams that Nokia South Africa has ZERO clue about what they are doing to promote people to
- Buy in bulk or put another way: Pay more
- Setup a “contract” which will cause people to pay more
In fact it seems they, Nokia South Africa don’t want the business - because you can also purchase this using your browser online from Nokia Europe, which is a little more work than on your phone, but their pricing makes sense (see how it makes sense to buy the bigger packages or renewal options):
- 1 day costs €1,59 (in rands that is roughly R17.90 or 10% cheaper)
- 30 days costs €5,99 (in rands that is roughly R67.45 or 237% more expensive)
- 30 days with automatic renewal costs €5,19 (in rands that is roughly R58.44 or 11% cheaper)
- 1 year costs €39,99 (in rands that is roughly R450.33 or 12% cheaper)
When my subscription ends I will be sending money out of the country and helping Europe make their sales targets which just feels wrong :(
Installing MSMQ in Domain Mode on Windows Server 2008
Yesterday I needed to install MSMQ on my laptop which runs Windows Server 2008, which wasn’t as logical as it first appeared. I simply fired up the Server Manager tool, went to features, selected Message Queuing and clicked next. However my code kept giving me an error: “This operation is not supported for Message Queuing installed in workgroup mode.”
So I went to find out what this mean, and it turns out MSMQ has two modes workgroup and domain. Domain is the “yes you can” mode where everything works while workgroup has restrictions:
The following restrictions exist when using Message Queuing in workgroup mode:
- Computers in workgroup mode require direct connectivity with a destination computer, and only support direct message transmission. Messages sent by such computers cannot be routed.
- There is no access to Active Directory Domain Services. As such, you can create and manage private queues only on a local computer. You can view the list of private queues on another computer, and the messages in them, using the Computer Management snap-in. For information about managing queues on remote computers, see Verwalten von Warteschlangen auf anderen Computern. You cannot view or manage public queues or any other information in Active Directory Domain Services. You can, however, send messages to or retrieve messages from private queues if there is direct connectivity.
- Internal certificates cannot be used for sending authenticated messages; an external certificate must be used. For more information about user certificates, see User Certificates.
- Messages cannot be encrypted. For more information about encryption, see Encryption for Message Queuing.
- There is no support for dependent clients. For more information about restrictions on the deployment of dependent clients, see Dependent Clients.
- Cross-platform messaging is not supported. For more information, see Cross-Platform Messaging.
That is taken from the helpful TechNet page Deploying in Workgroup Mode, which also states:
The default installation setting is that the directory service Integration feature is installed
Oddly enough though that is NOT what I got, in fact when I went to check Directory Service Integration had not been installed even though I am on a domain (and was connected to the network at the time)! To fix it, I had to go back to the Server Manager Tool, Features, Message Queuing and manually select it.
Outlook 2007: POP3 and delayed email or how to avoid downloading RSS feeds too often.
I have been spoilt for a long time by living in an Exchange environment, so when I recently had to use a POP3 environment (even if it was just temporarily), I felt like I had gone back 15 years. One of the reason it feels like I have gone from Vista to Windows 3.1, is that Exchange pushes the mail down (or at least that is how I appears to work – I’m no Outlook expert), so mail arrives instantly when someone sends it.
Unfortunately POP3 is pull based and it doesn't come down until Outlook checks for mail. The horrible part is that by default it is configured for only checking every 30 minutes :( That could mean if someone misses your check window (like they would know) you could wait almost forever for their mail. Thankfully you can change that, first go to Tools -> Options
Next go to Mail Setup and click the Send/Receive button.
By default you should have one group (called All Accounts) and below that there is an option to Schedule an automatic send/receive every x minutes. In the picture below you'll see it is set to 1 minutes, which really helps (close enough to instant that it doesn't matter).
However if you are like me then you also use Outlook for RSS feeds, and that change will mean you will now be downloading feeds every 1 min! You can fix that easily by splitting RSS and Emails check times
To do that click the Edit button and remove RSS from being included, then click OK. If you are a perfectionist (which you may gather I am from my picture below), you could also click Rename to understand what it is easier. Next click the New button and do not select to include Email, just RSS. Click OK and now you should have two Send/Receive groups. You can now click on RSS in the list and set a separate interval for how often it should check (once an hour is good). Click Close, OK and you are done :)
Team Foundation Server could not resolve the user or group
Next up was the migration of VSS to TFS, which was actually not a major requirement as it is just there for legacy projects. All active projects would have to check their code into new TFS projects planned to create in TFS. The key benefit of this is it would allow us to align with EPM better than the migration tool would allow us to. I created a project, and imported the 1.7Gb of source code into it! It took some time. Then I needed to add the users, and this is where I met a problem.
Regardless if I used the command line, or the TFS admin tool or the GUI I kept getting an error: Team Foundation Server could not resolve the user or group. <AD Distinguished Name of the User>. The user or group might be a member of a different domain, or the server might not have access to that domain. Verify the domain membership of the server and any domain trusts.
The AD issue and TFS issue both revolved around the fact that in our AD the Authenticated Users (AuthUsers) group does not have read permissions to our users and the containers they are in. This is odd to the outside person because when AD is setup the AuthUsers group does have permissions, so why would our AD be different and what are the implications of changing it. The reason there is a difference is because our AD is setup according to Hosted Messaging and Collaboration (you can read more about it here) which specifically removes the AuthUsers group permissions for security reasons (i.e. to prevent users from seeing other customers). Because of this change, the GPO could not access the users accounts and neither could TFS read from AD what it needed.
To solve this for TFS meant giving AuthUsers read permissions to the users who needed to access TFS and their immediate container while for AD/GPO it required just AuthUsers to have permissions on the container for the users (it doesn’t need the permissions on the actual users) and all it’s parent containers. Once those were done the group policies and TFS started to work 100%.
That’s great but what is the impact to the hosted environment and is this the best way to solve the issue? Well this does open up a security risk in that customers could see other customers, simply by logging into the domain. For us this is mitigated as we are not offering hosted TFS, this is just for our own internal staff who are aware of who our customers are and we aren’t worried if our customers know about our staff. It is also very difficult for a customer to see other customers as most applications don’t allow it and those that do allow it in their standard configurations, such as MSCRM, ignore it in a HMC environment.
In regards to is this the best way to solve the issue, my view is that it is not it. You should run a separate AD for each customer, this is a normal AD system which runs at the client premises and using the Customer Integration component of HMC (which is based on MIIS) sync the customer AD to the hosted AD. This means that you could run GPO’s and TFS on the customer site without the need to change anything in a hosted way.
Help files (CHM) don't work
I stumbled across this with the HMC 4.5 documentation which is presented in, you guessed it, CHM help files. Just like when I found the MSDN Library Broken this is caused by a security feature trying to protect you. To resolve this you need to close the file, right click and select properties. On there in the bottom right hand corner is a nice little Unblock button which once clicked you can then use the file normally.
MSCRM 4.0 Developer Errors: My new pet hate
As a hosting providing I do not want to have to enable it globally as it means that the user interface for an error is ugly and I do not want to have to take individual support calls for customers to turn it on and off all the time.
Undocumented MSCRM 4.0 Requirement
I suspect you can work around this by creating an unattended installation (see the implementation guide for creating the XML files for that), but I'm actually lucky enough to have an empty second drive I can change the drive letter to C (using disk manager).
Add to this that nothing actually appears on C: once I fixed the issue (assuming it is checking for something, and that is failing and thus the issue). So all that I have left to do is:
AARRRRRGGGHHHHHHH